<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: [NFJS Atlanta] Java 5 Features</title>
	<atom:link href="http://blog.kischuk.com/2005/10/22/nfjs-atlanta-java-5-features/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kischuk.com/2005/10/22/nfjs-atlanta-java-5-features/</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 19 May 2010 15:39:28 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: rogerv</title>
		<link>http://blog.kischuk.com/2005/10/22/nfjs-atlanta-java-5-features/#comment-12</link>
		<dc:creator>rogerv</dc:creator>
		<pubDate>Sat, 22 Oct 2005 17:35:18 +0000</pubDate>
		<guid isPermaLink="false">http://rkischuk.wordpress.com/2005/10/22/nfjs-atlanta-java-5-features/#comment-12</guid>
		<description>Here are some more reasons:

? Code executes faster under Java 5 JVM

? Java 5 JVM has a JMX GUI console viewer app. Can write JMX mbeans for app that appear in this console viewer. (Not just J2EE app servers that support JMX, but now can write a JMX mbean to admin any arbitrary Java software.)

? AspectJ 5 will use a new hook available in the Java 5 JVM to do load time aspect weaving. Currently I&#039;m using AspectJ 1.2.1 and do compile time weaving. This is compatible with any JVM version and requires no special runtime support. However, there are powerful reasons to want to do load time weaving of aspects. For example, I&#039;d like to fix a bug in my J2EE app server and automatically have all deployed software (and software yet to be written and deployed) be able to enjoy advantage of the bug fix. With load time weaving of my bug fix aspect this will be possible to  do. Naturally I could address bugs in Java class libraries too. (Indeed, I&#039;m interacting with a Sun engineer on how they can begin to use AspectJ to hugely facilitate ordinary developers being able to fix bugs and offer up the bug fix to Sun - their current technique has one downloading their complex development environment for Java which can take 2 to 4 hours to install and set up. The AspectJ approach will be an order of magnitude easier to do so people will have a much lower hurdle to participating in bug fixing with Sun.) BTW, with this new JVM feature, load time weaving of aspects will work even if a custom class loader is being used - that is why its such a powerful new feature!

? Code will look cleaner. Here is a code snippet that was originally written to Java 1.4 and then illustrated as written to Java 5 using some new features:

// Java 1.4 version

return MessageFormat.format( Shared.Rsrc(&quot;ErrMsgFmt1100&quot;),
    new Object[] {  prefix, systemId,
        new Integer(spe.getLineNumber()),
        Shared.newline, spe.getMessage() }  ); 

will now look something like this: 

// Java 5 version

return format( rsrc(&quot;ErrMsgFmt1100&quot;), 
    prefix, systemId, spe.getLineNumber(), newline, spe.getMessage() ); 

This example used static import, autoboxing, and variable args features of Java 5.

Well, there you have some additional reasons to switch to Java 5. However, there might not be one overarching reason that compells the argument to switch. I think it is the aggregate of these capabilities taken together that makes the case.

Is interesting that I just recently completed migration of my code base from Java 1.4 to Java 5 (and just recently attended a NFJS where went to Java 5 session). I was also doing a migration to a newer J2EE app server version - and that was what lead to more issues in the code needing to be revised.

The developer staff is all now very pleased to be unfettered to use the new features and advantages of Java 5.</description>
		<content:encoded><![CDATA[<p>Here are some more reasons:</p>
<p>? Code executes faster under Java 5 JVM</p>
<p>? Java 5 JVM has a JMX GUI console viewer app. Can write JMX mbeans for app that appear in this console viewer. (Not just J2EE app servers that support JMX, but now can write a JMX mbean to admin any arbitrary Java software.)</p>
<p>? AspectJ 5 will use a new hook available in the Java 5 JVM to do load time aspect weaving. Currently I&#8217;m using AspectJ 1.2.1 and do compile time weaving. This is compatible with any JVM version and requires no special runtime support. However, there are powerful reasons to want to do load time weaving of aspects. For example, I&#8217;d like to fix a bug in my J2EE app server and automatically have all deployed software (and software yet to be written and deployed) be able to enjoy advantage of the bug fix. With load time weaving of my bug fix aspect this will be possible to  do. Naturally I could address bugs in Java class libraries too. (Indeed, I&#8217;m interacting with a Sun engineer on how they can begin to use AspectJ to hugely facilitate ordinary developers being able to fix bugs and offer up the bug fix to Sun &#8211; their current technique has one downloading their complex development environment for Java which can take 2 to 4 hours to install and set up. The AspectJ approach will be an order of magnitude easier to do so people will have a much lower hurdle to participating in bug fixing with Sun.) BTW, with this new JVM feature, load time weaving of aspects will work even if a custom class loader is being used &#8211; that is why its such a powerful new feature!</p>
<p>? Code will look cleaner. Here is a code snippet that was originally written to Java 1.4 and then illustrated as written to Java 5 using some new features:</p>
<p>// Java 1.4 version</p>
<p>return MessageFormat.format( Shared.Rsrc(&#8220;ErrMsgFmt1100&#8243;),<br />
    new Object[] {  prefix, systemId,<br />
        new Integer(spe.getLineNumber()),<br />
        Shared.newline, spe.getMessage() }  ); </p>
<p>will now look something like this: </p>
<p>// Java 5 version</p>
<p>return format( rsrc(&#8220;ErrMsgFmt1100&#8243;),<br />
    prefix, systemId, spe.getLineNumber(), newline, spe.getMessage() ); </p>
<p>This example used static import, autoboxing, and variable args features of Java 5.</p>
<p>Well, there you have some additional reasons to switch to Java 5. However, there might not be one overarching reason that compells the argument to switch. I think it is the aggregate of these capabilities taken together that makes the case.</p>
<p>Is interesting that I just recently completed migration of my code base from Java 1.4 to Java 5 (and just recently attended a NFJS where went to Java 5 session). I was also doing a migration to a newer J2EE app server version &#8211; and that was what lead to more issues in the code needing to be revised.</p>
<p>The developer staff is all now very pleased to be unfettered to use the new features and advantages of Java 5.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
