|
SDN Chat Sessions Transcripts Index
April 12, 2005 This is a moderated forum. MDR-EdO: Welcome to today's SDN chat on "Java Plug-in Technology." Java Plug-In Technology connects popular browsers such as Internet Explorer, Mozilla, and Firefox to the Java Platform. It enables applets to run in Sun's Java 2 Runtime Environment (JRE), rather than in the browser's Java runtime environment. In today's chat you'll have a chance to ask questions about the technology and get answers from three key members of the Java Plug-in technology team at Sun: Dennis Gu, Calvin Cheung, and Danielle Pham. So let's begin. Who has the first question? Plugster: Can you summarize what was changed/improved in the technology from Java Plug-in 1.4.2 to Java Plug-in 5.0? Calvin Cheung: Ease-of-Deployment is the theme in Java Plug-in 5.0. In this release, we have aligned many deployment features between Java Plug-in and Java Web Start, so developers could leverage a more consistent set of features across these deployment products. There are also many new features and enhancements, such as enterprise configuration and lockdown, Java Control Panel, HTTPS client authentication, browser keystore and Smart Card support, timestamped signature verification, Pack200 download support, animation during applet download, and performance improvements in JavaScript/Java communication. jaws: The new 5.0 plug-in has an applet animation when the applet is loading, but I found that it significantly slowed down my applet startup. Is there any plan to fix that? Dennis Gu: It has been found that the 5.0 Java Animation has slowed down the performance of some applet startup times. This has been addressed in 6.0 and will also be available in 5.0u4. The bug ID is 6205422: REGRESSION: Applet load time slow in JRE 5.0 due to Java logo animation. Anil Pathak: Do you have options other than applets to run on the client side? For example, a Java framework that does the work somewhat like JavaScript, validating from and working with other web page objects? Dennis Gu: Are you talking about deploying applications other than Java applets? If so, we have another product call Java Web Start which you might be interested in. jaws: I can use the certificates in the browser keystore in Internet Explorer, but I was unable to get it to work in Mozilla. Why? Dennis Gu: You should be able to use browser keystore in both IE and Mozilla. Because they are two different browsers, in order to use the Mozilla browser keystore from Java Plug-in, you have to install JSS from Mozilla.org into your PC/UNIX. jaws: How do I sign my JAR with a timestamp?
Dennis Gu: The timestamping feature is available in the 5.0 release, using fvega: When embedding a browser (IE or Mozilla) in a Java program on Windows platforms, the embedded browser cannot execute applets. Has your team any plans to solve this old problem? In my business (self-service terminals), it is a very common practice to embed a browser, and I can not offer a full Java solution (inside and outside the browser) because of this issue. Calvin Cheung: We'll look into supporting this if there are more customers requiring this feature.
jaws: Is there any general advice about when to use Dennis Gu: The Object tag is for IE before, and Embed is for Netscape. Because both browsers now support the Applet tag, we suggest using it for all browsers. Plugster: What level of Java Plug-in is supported by Firefox? Danielle Pham: Java Plug-in will support Firefox fully in the Java SE 6 release. Anil Pathak: Does Java Plug-in store my applet so that next time it is loaded fast? Calvin Cheung: Yes, Java Plug-in has its own cacheing scheme so that subsequent loading of the same applet is faster. Danielle Pham: Java Plug-in stores an applet's resources (jar, gif) in the plug-in's cache. It also stores the applet's ClassLoader and reuses it the next time the applet restarts. cajo: I watch the calls to my web server when I deploy applets. The archive jar contains all the classes, and other resources, the applet needs. The plug-in still makes a GET request of my server for every single item in the jar, they all get 404. Only then does the plug-in seem to check the archive jar, where it finds the resource. Shouldn't that work the other way around? Danielle Pham: Which version of JRE did you use when experiencing this behavior? cajo: JRE 1.2-1.4.2 (I haven't tried 5.0 yet, too much legacy). Danielle Pham: We fixed a similar problem in Tiger or 5.0. We'll look into how it behaves in 1.4.2. cajo: Thanks. If we only use the applet tag as suggested, how does the plug-in know which version of the JRE is needed by an applet? This is explicitly indicated in the JNLP XML.
Danielle Pham: You can take advantage of dynamic vs. static-versioning for the gogo: When will the next Plug-in release be? What features and improvements are you guys planning to do? Dennis Gu: The next JRE release, 6.0, will be available mid next year, and 6.0 Beta will be available at the end of this year. Calvin Cheung: Ease-of-Deployment continues to be the theme in Java Plug-in 6.0. There are many new features and enhancements, e.g., a web deployment toolkit for deployers to do JRE detection and JRE deployment from the browsers, an improved user experience (including the fix for the scary security dialog), improved download and caching support, OCSP and CRL support, timestamp signature verification improvement, and many many others. Plugster: Is it possible to load different versions of the Plug-in in the same machine? I've got various applets running that require different JRE levels. Calvin Cheung: Yes, it's possible to load different versions of the Plug-in in the same machine. You'll need to use the static-versioning clsid to run the applets which require specific versions of the Plug-in. spike65: I've heard about security issues with 1.4.2_04, as well as other older JREs. Why is it that 5.0 does not have these issues? Dennis Gu: Yes, we do have some security issue in JRE 1.4.2_04 and earlier, and have already published this information. Once we notice them, we fix them ASAP in JRE update releases and new releases. In 5.0, we have fixed all the above issues. Dennis Gu: Well, this is not a bug. Java Plug-in uses its JSSE layer to do the HTTPS connection, and the browser has its own layer to do HTTPS too. Therefore, you will see two dialog boxes for HTTPS client authentication. There is a new feature that will be available in JRE 6.0 that if only one client cert matches the server, the JRE will pick it up automatically and with no dialog box pop. cajo: Please be careful fixing the scary dialog box. If a user clicks OK, a rogue applet could cost him his job, or his data! :-( I think it should be scarier! Dennis Gu: Thanks for your suggestion. Yes, this is a sensitive area to make changes, we do have a new design in JRE 6.0, and we hope it serves both purposes (friendly but still a little bit scary). Danielle Pham: You can use a SOCKET connection like this: Socket socket = new Socket(host, port); BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream()); now you have to write your POST (request line is POST <uri> <HTTP Protocol> CRLF bos.write(...); then you have to write REQUESTED HEADERS like content-length content-type host finally you can send variables (use URLEncoder). spike65: We have had users having trouble with JRE 1.4.2_04 after installing it on a PC with JRE 1.3.1_09. After install of 1.4.2_04, the applet won't start and wants to reload every time you try to launch the applet. Is there a compatibility problem with these two JREs? Dennis Gu: Between each JRE release, we do a lot of compatibility tests and make sure there are no regression issues. Of course, there may be one we missed. What I suggest is to remove all the JREs from your PC (using control panel->remove program), then install the latest update JRE 1.4.2 release, restart your machine, then see what happens. Calvin Cheung: If the applet uses the dynamic clsid (the one starts with 8AD...), JRE 1.4.2_04 will be used after the installation. There could be compatibility issues between 1.3.1 and 1.4.2. If the user wants the applet to use 1.3.1_09, s/he should use the static-versioning clsid. Can you be more specific on the problem the user is seeing? Dennis Gu: There is a special tag in the HTML file, you can give a .gif or .jpeg file name, I don't have exact syntax on top of my head, but you can find it in java.sun.com. spike65: Dennis - we end up doing what you suggest and it always fixes it. Dennis Gu: Good to hear it. I think it is a installation issue which makes the applet confused about which JRE it should use. spike65: Calvin - the problem is that when the user tries to run an applet requiring 1.4.x, it automatically tries to install 1.4.2_04, even after it has been installed. Fortunately our users don't need 1.3.1_09, it just came loaded on their PCs, so i have them remove all JREs and install 1.4.2_4. Calvin Cheung: Yes, since the applet uses static-versioning, it'll automatically download the 1.4.2_04. An alternative is to use the <applet> tag instead of the <object> tag for IE or the <embed> tag for Mozilla. Plugster: My experience has been that users can have trouble loading an applet in their browser if they have various versions of Java Plug-in installed. Is this still the case? Calvin Cheung: In general, having multiple Java Plug-ins on the same machine is not recommended. In the case that different applets require specific versions of the Java Plug-in, the static versioning clsid should be used. Tom: What exactly does the web deployment toolkit do in the next plug-in? Danielle Pham: Several new features in the 6.0 J2SE timeframe include:
Plugster: Is there some sort of rule of thumb regarding when to use Pack200 versus, say, gzip to make an applet smaller? Calvin Cheung: Using Pack200 will significantly reduce the file size, but the packed file must be unpacked before it can be used by the VM. Thus, if the download time of the packed file + the unpack time is less than simply using gzip, you should use Pack200. Otherwise, using a JAR may make more sense. Tom: I have "Automatically detect settings" selected in IE for proxy but I cannot get plug-in to work. Other proxy settings work fine though. Why? Dennis Gu: Well, because JRE doesn't support it yet. The good news is that we are working on this feature in JRE 6.0. cajo: When I do use the object/embed tags, is there a URL I can reference which will always be the latest plug-in? I currently send users to the 1.4.2 page. Danielle Pham: The URL for downloading Java is specific for each version. For example, codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_5-windows-i586.cab#Version=1,5,0,0" is the one to use for 5.0. Tom: When I played some of the Yahoo! games, which I believe are written as applets, they sometimes hang when I exit the game. Why? Dennis Gu: Yahoo has a lot of games on their sites, and most of them are written for MS JVM, which is not available anymore. When we release our JREs, we do a lot of compatibility tests of Yahoo games. Some of the problems are due to the applet code in Yahoo. We tell them that they should be changed to the Sun JVM, but they are very slow to resolve it. That is why you still see some things that don't work well.
Plugster: I know that the Danielle Pham: Safari is Apple's proprietary browser. It's not currently in our supported configuration. MDR-EdO: Well we've quickly come to the end of our session. I want to thank everyone who participated today. I thought we had an excellent range of questions. And of course, I'd like to thank our guests, Dennis, Calvin, and Danielle, for their answers. Dennis Gu: Thanks everyone for joining us today. It has been great to chat with you! Calvin Cheung: Thanks everyone for taking your time to chat with us today. Danielle Pham: Thanks everyone. It's my pleasure to chat with you. If you have additional questions, please post them in the Java Plug-in forum.
MDR-EdO: Moderator signing off. The forum is now unmoderated. |
|
| ||||||||||||