<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>SitePoint &#187; Java EE</title>
	<atom:link href="http://www.sitepoint.com/blogs/category/tech/javaj2ee/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sitepoint.com/blogs</link>
	<description>News, opinion, and fresh thinking for web developers and designers. The official podcast of sitepoint.com.</description>
	<pubDate>Fri, 21 Nov 2008 22:08:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
		<!-- podcast_generator="podPress/8.8" -->
		<copyright>&#xA9;SitePoint </copyright>
		<managingEditor>kevin@sitepoint.com (SitePoint)</managingEditor>
		<webMaster>kevin@sitepoint.com(SitePoint)</webMaster>
		<category>Technology</category>
		<ttl>1440</ttl>
		<itunes:keywords>web,development,design,technology,standards,HTML,CSS,JavaScript</itunes:keywords>
		<itunes:subtitle>Fresh Thinking for Web Developers and Designers</itunes:subtitle>
		<itunes:summary>News, opinion, and fresh thinking for web developers and designers. The official podcast of sitepoint.com.</itunes:summary>
		<itunes:author>SitePoint</itunes:author>
		<itunes:category text="Technology"/>
<itunes:category text="Technology">
  <itunes:category text="Tech News"/>
</itunes:category>
		<itunes:owner>
			<itunes:name>SitePoint</itunes:name>
			<itunes:email>kevin@sitepoint.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.sitepoint.com/blogs/wp-content/themes/sitepoint/images/sitepointpodcast300.png" />
		<image>
			<url>http://www.sitepoint.com/blogs/wp-content/themes/sitepoint/images/sitepointpodcast144.png</url>
			<title>SitePoint</title>
			<link>http://www.sitepoint.com/blogs</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Java 6 for Mac OS X Back on the Radar</title>
		<link>http://www.sitepoint.com/blogs/2007/12/20/java-6-for-mac-os-x-back-on-the-radar/</link>
		<comments>http://www.sitepoint.com/blogs/2007/12/20/java-6-for-mac-os-x-back-on-the-radar/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 00:43:18 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2007/12/20/java-6-for-mac-os-x-back-on-the-radar/</guid>
		<description><![CDATA[Nearly two months on from the release of Mac OS X 10.5 (Leopard) and the resulting uproar from Java developers over Apple’s silent removal of preview builds of Java 6 for Mac, Apple has just as quietly released Java SE 6 Developer Preview 8, the first developer preview of Java 6 that runs on Leopard.
Many [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly two months on from the release of Mac OS X 10.5 (Leopard) and the resulting <a href="http://www.sitepoint.com/blogs/2007/11/09/missing-in-action-java-6-for-mac/">uproar from Java developers</a> over Apple’s silent removal of preview builds of Java 6 for Mac, Apple has just as quietly <a href="http://arstechnica.com/journals/apple.ars/2007/12/19/apple-finally-releases-java-6-developer-preview-for-leopard">released Java SE 6 Developer Preview 8</a>, the first developer preview of Java 6 that runs on Leopard.</p>
<p>Many developers had feared that the removal of the previous preview signalled an intent from Apple to ignore Java 6 in favour of continued minor tweaks to Java 5. It seems now that the optimists were right: Apple just needed more time to get Java 6 right, so it took a step back and made some improvements to Java 5 for the Leopard release before pressing on with its work on Java 6.</p>
<p>The fact remains that if Apple were only to communicate with its closest allies—software developers—in a meaningful way, we wouldn’t be left playing these guessing games over the company’s intentions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2007/12/20/java-6-for-mac-os-x-back-on-the-radar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Missing in Action: Java 6 for Mac</title>
		<link>http://www.sitepoint.com/blogs/2007/11/09/missing-in-action-java-6-for-mac/</link>
		<comments>http://www.sitepoint.com/blogs/2007/11/09/missing-in-action-java-6-for-mac/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 00:47:44 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2007/11/09/missing-in-action-java-6-for-mac/</guid>
		<description><![CDATA[Java developers are up in arms over the recent release of Mac OS X Leopard, and the sudden silence from Apple regarding the future of Java 6 on the Mac. Not only did Leopard not ship with Java 6, but Apple has quietly taken down the developer preview of Java 6, and is reportedly deleting [...]]]></description>
			<content:encoded><![CDATA[<p>Java developers are up in arms over the recent release of <a href="http://www.apple.com/macosx/">Mac OS X Leopard</a>, and the sudden silence from Apple regarding the future of Java 6 on the Mac. Not only did Leopard not ship with Java 6, but Apple has quietly taken down the developer preview of Java 6, and is reportedly deleting threads in the Apple developer forums asking why.</p>
<p>As anyone who has attended a developer conference in the past few years can attest, developers as a group are some of Apple&#8217;s best customers. If only Apple treated its developers with as much reverence.</p>
<p>In a post on <a href="http://www.javalobby.org/">The Java Lobby</a> entitled <a href="http://www.javalobby.org/java/forums/t102936.html">So Long Apple. The Party&#8217;s Over</a>, Michael Urban summed up the situation nicely:</p>
<blockquote><p>Not only did Leopard not ship with Java 6, but Apple, in typical fashion, apparently thinks it has no obligation to its customers to inform them about why the plans changed, and when (or even if at this point?) Apple will ever have a working copy of Java 6.</p></blockquote>
<div id="adz" class="vertical"></div><p>Now, it&#8217;s obvious that Apple hasn&#8217;t dropped Java completely. As many developers have pointed out, Apple did do plenty of work on its version of Java 5 for the Leopard release. Ben Galbraith recently gave a run-down of <a href="http://weblogs.java.net/blog/javaben/archive/2007/10/more_on_leopard.html">his favourite Java improvements in Leopard</a>, based on <a href="http://developer.apple.com/releasenotes/Java/JavaLeopardRN/">Apple&#8217;s Release Notes for Java 5 on Leopard</a>, for example.</p>
<p>But still, despite what is now going on two weeks of furor in the Java community, there is no word from Apple about the state of Java 6 on Mac OS X.</p>
<p>On the one hand, there is <a href="http://stuffthathappens.com/blog/2007/10/28/os-x-java-definitive-timeline/">speculation that its release is imminent</a>, based on Apple&#8217;s history of releasing Java 5 within weeks of Mac OS X Tiger. On the other hand, the significant improvements Apple made to Java 5 for the release of Leopard cast doubt in my mind over whether Apple has done <em>any</em> work on Java 6 lately.</p>
<p>None of this would be anywhere near as frustrating if Apple would simply break its stony silence. It&#8217;s one thing to hold back announcements of new products to maximize their marketing impact, but keeping your most important allies—developers—in the dark about the future of major technologies like Java is no way to do business.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2007/11/09/missing-in-action-java-6-for-mac/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First Look: Google Web Toolkit</title>
		<link>http://www.sitepoint.com/blogs/2006/05/25/first-look-google-web-toolkit/</link>
		<comments>http://www.sitepoint.com/blogs/2006/05/25/first-look-google-web-toolkit/#comments</comments>
		<pubDate>Thu, 25 May 2006 01:29:42 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/?p=1553</guid>
		<description><![CDATA[Portions of this entry were first published in the SitePoint Tech Times #139.
Have you written your own AJAX framework yet? It seems all the big boys are doing it. Microsoft is bringing us Atlas for ASP.NET, Yahoo!&#8217;s User Interface Library is open source, server agnostic and beautifully documented and Adobe is working on Spry, which [...]]]></description>
			<content:encoded><![CDATA[<p><em>Portions of this entry were first published in the <a href="http://www.sitepoint.com/newsletter/viewissue.php?id=3&#038;issue=139">SitePoint Tech Times #139</a>.</em></p>
<p>Have <em>you</em> written your own AJAX framework yet? It seems all the big boys are doing it. <a href="http://www.sitepoint.com/blogs/2006/04/21/atlas-disappoints-in-cross-browser-support/">Microsoft is bringing us Atlas</a> for ASP.NET, <a href="http://www.sitepoint.com/blogs/2006/02/16/javascript-libraries-and-patterns-yahoo-does-ajax/">Yahoo!&#8217;s User Interface Library</a> is open source, server agnostic and beautifully documented and <a href="http://labs.adobe.com/technologies/spry/">Adobe is working on Spry</a>, which is off to a shaky start in the web standards department. Do we really need another?</p>
<p>Google&#8217;s late-but-inevitable entry into this arena is certainly no copycat. The <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> (GWT) is nothing less than a completely original approach to web development that allows server-side Java developers to take their skills to the JavaScript domain&#8230; without having to write any JavaScript.</p>
<p>In short, you write, test and debug your client-side code in Java and then use a specialized compiler to convert it all into cross-browser JavaScript for use on your site.</p>
<h2>How&#8217;s it work?</h2>
<p>You can write you client-side code using the usual core Java classes in the <code>java.lang</code> and <code>java.util</code> packages, as well as <a href="http://code.google.com/webtoolkit/documentation/gwt.html">a nice library of classes</a> that come with GWT that let you access the same browser features that are available in JavaScript (the Docment Object Model, <code>alert</code> boxes, <code>setTimeout</code>, <code>XMLHttpRequest</code>, etc.).</p>
<p><img alt="GWT Menu Bar Widget" src="http://i2.sitepoint.com/g/nl/tt/gwt-menubar.png" align="right" border="0" height="135" width="165"/>You also get a bunch of Java classes for adding <a href="http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html">widgets</a> to the page, from simple buttons to complex drop-down menus and trees. All of these widgets offer events that you can subscribe listener objects to, and write Java code to respond to them.</p>
<p><img src="http://www.sitepoint.com/authors/images/48_gwt-code.gif" alt="Coding for GWT in IntelliJ IDEA" /></p>
<div id="adz" class="vertical"></div><p>When you&#8217;re ready to test out your application in a browser, you simply compile your classes in your Java IDE of choice and launch the GWT Shell, which pops up a specialized browser window and loads your application. On Windows, that browser window uses the Internet Explorer rendering engine, whereas on Linux it uses Mozilla.</p>
<p>The GWT Shell acts as a go-between between your Java classes and the special browser window, allowing your application&#8217;s client-side logic to run within the browser even though it is implemented in Java, not JavaScript. This small miracle actually lets you test and debug your client-side logic as you would any other Java code! Set breakpoints to pause and step through client-side event handlers, write unit tests to verify that your user interface works as designed. It all just works.</p>
<p><img src="http://www.sitepoint.com/authors/images/48_gwt-shell.gif" alt="the GWT Shell" /></p>
<p>At this stage, your application is still a collection Java classes, and the final development step is to compile those classes down to efficient cross-browser JavaScript code. The compiler that comes with GWT actually reads <em>the source code of your classes</em> and generates the equivalent JavaScript code!</p>
<p>You can then take the generated JavaScript code, along with your static HTML, CSS and image files and dump them on a server as you would for any other web site. The resulting code is entirely self-contained &#8212; no browser plugins or special server technology required.</p>
<h2>What about AJAX?</h2>
<p>As I mentioned, the class library does give you access to the <code>XMLHttpRequest</code> object normally used in AJAX applications, but GWT also offers an even slicker method of communicating with the server.</p>
<p>In addition to your client-side code, you can write Java server-side code. Because it doesn&#8217;t get converted to JavaScript, this code can use the full capabilities of the Java platform, and any additional class libraries you may require.</p>
<p>In your client-side code, you can set up classes that are able to communicate with your server-side code. When your application is compiled, GWT will automatically generate all the JavaScript needed to communicate with the server on the client-side, and will compile your server-side code to a set of Java Servlets.</p>
<p>You can deploy these Servlets on any Java web server, and let GWT do the rest. GWT manages the conversion between JavaScript variables on the client-side and Java objects on the server side, and again it all just works.</p>
<p>GWT also includes a full browser history management system, allowing you to involve the browser&#8217;s Back and Forward buttons in your application&#8217;s navigation, even though the browser never actually leaves the page containing your applications.</p>
<h2>Sticking Points</h2>
<p>Google has definitely put together an impressive platform with GWT, but as one would expect (especially from a beta product) it&#8217;s not perfect:</p>
<ul>
<li><strong>GWT detects and supports browsers by their user agent string.</strong>
<p>You must rely on Google to add support for future browsers. Right now, for example, GWT applications are incompatible with IE7. You can <a href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/8fc34663134032b1/3fce069ac3114f46">hack the toolkit to treat it like IE6</a>, but that&#8217;s the extent of what you can do to support new browsers.</p>
</li>
<li><strong>The bundled GWT widgets make extensive use of tables for layout.</strong>
<p>If you want you application to generate a standards-compliant document structure, you&#8217;ll need to write your own widgets, which isn&#8217;t a happy prospect.</p>
</li>
<li><strong>GWT was written to work with Java 1.4 or later.</strong>
<p>As such, it does not take advantage of Java 5 features like annotations and generics. This adds some redundancy and bulk to the code you must write, especially when working with the AJAX features of the library. For example, each server-side access point in your application requires you to write an interface to describe the servce, another interface to describe the asynchronous version of the service, and finally a class to implement the service. Using annotations, you could do it all by writing just one class.</p>
</li>
<li><strong>The development shell does not support Mac OS X.</strong>
<p>Google is saying that Mac support is planned, but for now GWT development is limited to Windows and Linux. Compiled GWT applications run just fine in Mac browsers, of course.</p>
</li>
<li><strong>Unclear best practices for security and performance.</strong>
<p>By masking the client-server division, GWT could lead unwary developers to make some serious security and performance blunders. You really need to know what you&#8217;re doing to use GWT effectively.</p>
</li>
</ul>
<p>But the biggest thing lacking in GWT is an example of a finished, real-world application running in the wild. No doubt Google is hard at work on its next big project using GWT, but for now at least GWT is unproven technology.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/05/25/first-look-google-web-toolkit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Write Java Web Apps in Visual Basic (or JavaScript!)</title>
		<link>http://www.sitepoint.com/blogs/2006/05/19/write-java-web-apps-in-visual-basic-or-javascript/</link>
		<comments>http://www.sitepoint.com/blogs/2006/05/19/write-java-web-apps-in-visual-basic-or-javascript/#comments</comments>
		<pubDate>Fri, 19 May 2006 05:35:48 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>
<category>Java</category><category>JavaEE</category><category>JavaScript</category><category>Phobos</category><category>Semplice</category><category>Visual Basic</category>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/05/19/write-java-web-apps-in-visual-basic-or-javascript/</guid>
		<description><![CDATA[More from the JavaOne 2006 keynotes&#8230;
One of the new key features in Java 6 (Mustang), available now in beta and weekly snapshots and slated for release in October, is support for alternative languages running on the JVM. In particular, Java 6 will ship with support for running JavaScript code as a first-class citizen, with complete [...]]]></description>
			<content:encoded><![CDATA[<p>More from the <a href="http://java.sun.com/javaone/sf/sessions/general/index.jsp">JavaOne 2006 keynotes</a>&#8230;</p>
<p>One of the new key features in Java 6 (Mustang), available now in beta and weekly snapshots and slated for release in October, is support for alternative languages running on the JVM. In particular, Java 6 will ship with support for running JavaScript code as a first-class citizen, with complete access to the Java class libraries and the ability to call back and forth between Java and JavaScript code within a single application.</p>
<p>At JavaOne on Tuesday, Sun took the wraps off of two new projects that are taking advantage of this capability in a way that will be of interest to web developers. The first, Project Semplice, brings the Visual Basic language to the Java platform. Not meant for porting existing VB apps over to Java, but rather for allowing Visual Basic developers to transition to the Java platform while leveraging their existing skills, Semplice lets you write code using VB syntax (including all the automatic type conversion, support for properties implemented by methods, and other niceties that VB developers love so much) that compiles to Java classes that will run on the Java 6 VM. As J# is to Java, Semplice is to Visual Basic.</p>
<p>In the demo during the keynote, Semplice developer <a href="http://blogs.sun.com/tor">Tor Norbye</a> (regular on the <a href="http://javaposse.com/">Java Posse podcast</a>) demonstrated building a simple web application in VB using a pre-release version <a href="http://developers.sun.com/prodtech/javatools/jscreator/">Java Studio Creator</a>. Starting from a blank page, he dragged a number of JavaServer Faces (JSF) components onto the page, then double-clicked one to add an event handler to it. The editor that popped open contained a new event handler written in Visual Basic, to which he quickly added some simple implementation code, then compiled and ran the application.</p>
<p>The application, he pointed out, made use of JSF components written in Java, and he accessed properties of these directly from his Visual Basic code. Additionally, the JSF components call the Visual Basic event handling code from within Java. Semplice allows these two languages to work together transparently.</p>
<p>Thanks to features of the VB language, instead of having to call <code>farenheit.getText()</code> to obtain the value of the <code>farenheit</code> form field, he could refer to it as <code>farenheit.Text</code>, or even just as <code>farenheit</code>, thanks to Visual Basic&#8217;s flexibility. He was also able to use the resulting <code>String</code> value in an arithmetic calculation (i.e. <code>celsius = (farenheit - 32) * 5 / 9</code>) without having to convert it to an integer.</p>
<div id="adz" class="vertical"></div><p>For developers that want the power of Java when writing server-side business logic, but want a more flexible and loosely-typed language when writing web presentation logic, Visual Basic running on the Java VM could well be a very attractive option!</p>
<p>Even <em>more</em> flexible than Visual Basic, however, and likely much more familiar to them as well is JavaScript. So why not write the server-side code of web applications in JavaScript? That&#8217;s exactly what <a href="https://phobos.dev.java.net/">Project Phobos</a> will do. With Project Phobos, you can either write server-side application logic with JavaScript directly within your HTML templates (much like you can in PHP or JSP), or in separate &#8220;helper&#8221; scripts to keep your code separate from your markup.</p>
<p>Along with the many other projects working to bring other languages to the Java VM, these two projects give developers even more choices when considering Java as a web development platform.</p>
<p>The video of both demos may be found in Segment Three of the <a href="http://java.sun.com/javaone/sf/sessions/general/index.jsp">Sun Technical General Session: Java Platform Roadmaps: The Big Stuff, Today &#038; Tomorrow</a> from Day 1 of the JavaOne 2006 conference.</p>
<p><ins datetime="2006-05-19T23:40:06+00:00"><a href="http://blogs.sun.com/roller/page/herbertc?entry=project_semplice_visual_basic_for">Full details and screenshots of Semplice in action</a> on project developer &#8220;HerbertC&#8221;&#8217;s blog.</ins></p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/05/19/write-java-web-apps-in-visual-basic-or-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sun: Open source Java not whether but how</title>
		<link>http://www.sitepoint.com/blogs/2006/05/18/sun-open-source-java-not-whether-but-how/</link>
		<comments>http://www.sitepoint.com/blogs/2006/05/18/sun-open-source-java-not-whether-but-how/#comments</comments>
		<pubDate>Thu, 18 May 2006 08:28:41 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/05/18/sun-open-source-java-not-whether-but-how/</guid>
		<description><![CDATA[Sun has conceded: Java will be open sourced.
During his opening keynote at JavaOne 2006, newly annointed Sun CEO Jonathan Schwartz welcomed to the stage Rich Green, Executive VP of Software, with the hard question: &#8220;Are you going to open source Java?&#8221;
After a little mock evasiveness, Green explained Sun&#8217;s latest thinking on the matter, ending with [...]]]></description>
			<content:encoded><![CDATA[<p>Sun has conceded: Java will be open sourced.</p>
<p>During his <a href="http://java.sun.com/javaone/sf/sessions/general/">opening keynote</a> at <a href="http://java.sun.com/javaone/sf/">JavaOne 2006</a>, newly annointed Sun CEO <a href="http://blogs.sun.com/jonathan">Jonathan Schwartz</a> welcomed to the stage Rich Green, Executive VP of Software, with the hard question: &#8220;Are you going to open source Java?&#8221;</p>
<p>After a little mock evasiveness, Green explained Sun&#8217;s latest thinking on the matter, ending with the bottom line: &#8220;It isn&#8217;t a question of whether, but a question of how. And so we&#8217;ll go do this.&#8221;</p>
<p>Green did take the time to point out that, from the perspective of <a href="http://jcp.org/">community involvement</a> and <a href="https://www.dev.java.net/">contribution</a> to the development of the Java platform, Java is <em>already</em> effectively open source:</p>
<div id="adz" class="vertical"></div><blockquote><p>There&#8217;s two battling forces here. There&#8217;s the desire to completely open this up&#8211;complete access&#8211;I mean, so many changes of the licenses have been made that it&#8217;s virtually all there. But there is the sense of wanting to complete the program. The flip side is compatibility really matters. I don&#8217;t think anybody wants to see a diverging Java platform. One of the great values of Java has been that we&#8217;ve been able to keep it together&#8211;something you can all rely on in terms of its consistency and value and evolution. And the challenge, going forward, is how to solve for both of those things.</p></blockquote>
<p>C|Net has <a href="http://news.com.com/1606-2_3-6072875.html">video of the conversation</a>, and of course the <a href="http://java.sun.com/javaone/sf/sessions/general/">full webcast of the session</a> is available on the JavaOne web site.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/05/18/sun-open-source-java-not-whether-but-how/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Follow JavaOne 2006 online</title>
		<link>http://www.sitepoint.com/blogs/2006/05/18/follow-javaone-2006-online/</link>
		<comments>http://www.sitepoint.com/blogs/2006/05/18/follow-javaone-2006-online/#comments</comments>
		<pubDate>Thu, 18 May 2006 07:51:29 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>
<category>Java</category><category>JavaOne</category>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/05/18/follow-javaone-2006-online/</guid>
		<description><![CDATA[If you enjoy working in Java like I do, there are probably few places you would rather be right now than at JavaOne 2006. Particularly hot web development topics at JavaOne this year include the newly-released JavaEE 5 platform for building enterprise Java applications more easily, and the associated updates coming in NetBeans 5.5.
But whether [...]]]></description>
			<content:encoded><![CDATA[<p>If you enjoy working in Java like I do, there are probably few places you would rather be right now than at <a href="http://java.sun.com/javaone/sf/">JavaOne 2006</a>. Particularly hot web development topics at JavaOne this year include the newly-released <a href="http://java.sun.com/javaee/">JavaEE 5</a> platform for building enterprise Java applications more easily, and the associated updates coming in <a href="http://www.netbeans.org/">NetBeans 5.5</a>.</p>
<p>But whether due to time, money or geography, not everyone can make it to San Francisco to bask in the Java love for a week.</p>
<p>Thankfully, you can follow the big picture from wherever you happen to be. All of the general sessions (i.e. keynote  speakers and demos) are available for viewing via <a href="http://java.sun.com/javaone/sf/sessions/general/">live and on-demand webcasts</a> that are almost as good as being there (plus you get to skip the boring bits!).</p>
<p>As for the more focused technical sessions, most of them have published downloadable PDFs containing the slides for free download from the <a href="http://www.cplan.com/javaone2006/contentcatalog">session catalog</a>. You can also wait until the dust settles and the slides will be freely available with synchronized audio from <a href="http://developers.sun.com/learning/javaoneonline/">JavaOne Online</a>.</p>
<div id="adz" class="horizontal"></div><p>And if podcasts are your thing, PodTech.net is hosting a <a href="http://www.podtech.net/?cat=68">series of podcasts</a> from JavaOne, including the full audio of all the general sessions. Unfortunately, there is no dedicated feeed for just the JavaOne programs, so you might find yourself downloading some programs from other tech conferences going on at the same time.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=137&amp;did=adz&amp;adtype=horizontal" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/05/18/follow-javaone-2006-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JRun 5 hits beta</title>
		<link>http://www.sitepoint.com/blogs/2006/05/02/jrun-5-hits-beta/</link>
		<comments>http://www.sitepoint.com/blogs/2006/05/02/jrun-5-hits-beta/#comments</comments>
		<pubDate>Mon, 01 May 2006 23:22:42 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>
<category>Adobe</category><category>Java</category><category>Java EE</category><category>JRun</category><category>JSP</category><category>Macromedia</category>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/05/02/jrun-5-hits-beta/</guid>
		<description><![CDATA[Adobe (formerly Macromedia) JRun 4 was released in 2002. Since then, Java web development has moved on somewhat. JRun 4 supports Servlet 2.3 and JSP 1.2, while most servers are now on Servlet 2.4 and JSP 2.0. At four years since the last release, many developers assumed development of the server had ceased.
But now it [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe (formerly Macromedia) JRun 4 was released in 2002. Since then, Java web development has moved on somewhat. JRun 4 supports Servlet 2.3 and JSP 1.2, while most servers are now on Servlet 2.4 and JSP 2.0. At four years since the last release, many developers assumed development of the server had ceased.</p>
<p>But now it looks like JRun might be set to rise from the ashes, with Adobe <a href="http://www.bpurcell.org/blog/index.cfm?mode=entry&#038;entry=1084">looking for beta testers</a> of a major new release. At this stage, Adobe is tight-lipped on what new features will come with this version&#8211;EJB 3.0? <a href="http://www.sitepoint.com/blogs/2005/09/18/jetty-60-to-provide-new-architecture-for-ajax-apps/">Jetty-like continuations?</a> More affordable pricing?</p>
<p>I&#8217;ve asked for a look at the beta, and will report what I can when I can.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/05/02/jrun-5-hits-beta/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tomcat sucks&#8230; Is Apache flawed?</title>
		<link>http://www.sitepoint.com/blogs/2006/04/21/tomcat-sucks-apache-flawed/</link>
		<comments>http://www.sitepoint.com/blogs/2006/04/21/tomcat-sucks-apache-flawed/#comments</comments>
		<pubDate>Fri, 21 Apr 2006 05:26:21 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/04/21/tomcat-sucks-but-what-doesnt/</guid>
		<description><![CDATA[High on my list of Java blogs is Hani Suleiman&#8217;s The BileBlog, in which he gives unapologetically abrasive reviews of popular Java projects and the people behind them. In the past, he has had been less than complimentary of the Apache Project&#8217;s various open source (&#8221;opensores&#8221;) Java offerings like Maven and Struts. Today, he took [...]]]></description>
			<content:encoded><![CDATA[<p>High on my list of Java blogs is Hani Suleiman&#8217;s <a href="http://jroller.com/page/fate">The BileBlog</a>, in which he gives unapologetically abrasive reviews of popular Java projects and the people behind them. In the past, he has had been <a href="http://jroller.com/search/fate?q=Apache">less than complimentary</a> of the <a href="http://www.apache.org/">Apache Project</a>&#8217;s various open source (&#8221;opensores&#8221;) Java offerings like <a href="http://maven.apache.org/">Maven</a> and <a href="http://struts.apache.org/">Struts</a>. Today, he <a href="http://jroller.com/page/fate?entry=why_i_hate_tomcat">took Tomcat to task</a>.</p>
<p><a href="http://tomcat.apache.org/">Tomcat</a>, of course, provides the reference implementations for the Servlet and JSP specifications, but by virtue of the fact that it is free, it&#8217;s also the server of choice for many small-to-medium businesses. I <a href="http://www.sitepoint.com/blogs/2004/10/22/in-search-of-a-beginner-friendly-server/">took a critical look at Tomcat</a> myself awhile back, while looking for a beginner-friendly Java web application server (I&#8217;m still looking).</p>
<p>Suleiman&#8217;s critique of Tomcat is based, somewhat refreshingly (he often resorts to unpersuasive, if entertaining, personal attacks on the developers), on the quality of the project&#8217;s code&#8211;or rather its lack thereof. Choosing a pivotal but relatively uncomplicated class (<a href="http://svn.apache.org/repos/asf/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java"><code>DefaultServlet</code></a>, which is responsible for serving static resources like HTML/CSS/JavaScript files and images), he points out many examples of terrible coding practice, of which these are only a sampling:</p>
<dl>
<dt>Initialization code that lazily catches <code>Throwable</code></dt>
<dd>
<pre><code class="java">        // Set our properties from the initialization parameters
        String value = null;
        try {
            value = getServletConfig().getInitParameter("debug");
            debug = Integer.parseInt(value);
        } catch (Throwable t) {
            ;
        }
        try {
            value = getServletConfig().getInitParameter("input");
            input = Integer.parseInt(value);
        } catch (Throwable t) {
            ;
        }</code></pre>
<p><code>Throwable</code> is the base interface for all Java exceptions an errors, many of which have no business being caught by this sort of code, let alone being ignored as this code will do. If the server happens to run out of memory while initializing a <code>DefaultServlet</code>, for example, this code will ignore the resulting error and attempt to continue running.</p>
</dd>
<dt>Attempts to identify particular exceptions by portions of their message strings</dt>
<dd>
<pre><code class="java">        try {
            serveResource(request, response, true);
        } catch( IOException ex ) {
            // we probably have this check somewhere else too.
            if( ex.getMessage() != null
                &amp;&amp; ex.getMessage().indexOf("Broken pipe") &gt;= 0 ) {
                // ignore it.
            }
            throw ex;
        }</code></pre>
<p>Fortunately, the <code>if</code> statement in question (which, from the comment, it seems the developer was rather uncertain about) doesn&#8217;t actually cause the exceptions it identifies to be ignored (as the second comment says it should do), so this confusing twist of poor programming is actually useless anyway.</p>
</dd>
<dt>A method that returns an exception instead of throwing it</dt>
<dd>
<pre><code class="java">    protected IOException copyRange(InputStream istream,
                                  ServletOutputStream ostream) {

        // Copy the input stream to the output stream
        IOException exception = null;
        ...
            try {
                ...
            } catch (IOException e) {
                exception = e;
                ...
            }
        ...
        return exception;

    }</code></pre>
</dd>
</dl>
<div id="adz" class="vertical"></div><p>As a believer in open source development, I looked at every issue he pointed out to give it the benefit of the doubt. &#8220;Okay, it looks silly, but there must be a good reason that they did that.&#8221; There wasn&#8217;t, of course, unless you consider laziness or ignorance a good reason.</p>
<p>For a project produced under the public scrutiny of the open source development, these are disturbingly fundamental issues indeed. For me, the most important question becomes not whether or not Tomcat sucks, but whether this level of code quality is the exception or the norm in the Apache camp.</p>
<p>I know for a fact that there is plenty of good quality open source Java code in the wild. I&#8217;ve probed into the code of <a href="http://www.sitepoint.com/blogs/2005/06/21/jetty-really-is-lightweight/">Jetty</a> a number of times, for instance, and have been pleasantly surprised by what I found there. I also know that poor open source code <a href="http://www.sitepoint.com/blogs/2006/03/24/evaluating-php-applications/">isn&#8217;t just a problem that faced by Java</a>. But Apache is supposed to be a leader in the field.</p>
<p>If the repeated condemnations of The BileBlog are any indication, the majority of the web could be running software like this&#8211;code that looks like it was written in a desperate push to meet a deadline with something that works&#8230; most of the time&#8230; just barely.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/04/21/tomcat-sucks-apache-flawed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sun Developer Days 2006: Day Two</title>
		<link>http://www.sitepoint.com/blogs/2006/04/10/sun-developer-days-2006-day-two/</link>
		<comments>http://www.sitepoint.com/blogs/2006/04/10/sun-developer-days-2006-day-two/#comments</comments>
		<pubDate>Sun, 09 Apr 2006 21:14:12 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>
<category>AJAX</category><category>Java</category><category>Java 6</category><category>Java ME</category><category>Mustang</category><category>SOA</category><category>Sun</category>
		<guid isPermaLink="false">http://www.sitepoint.com/blogs/?p=1508</guid>
		<description><![CDATA[The second day of Sun&#8217;s Developer Days 2006 conference in Melbourne last week was a similar mixed bag to the first. Be sure to read my coverage of day one if you missed it.
Before the day&#8217;s sessions began in earnest, Sun organiser David Coldrick got up to plug two useful resources for Java developers to [...]]]></description>
			<content:encoded><![CDATA[<p>The second day of Sun&#8217;s <a href="http://au.sun.com/events/developer/index.jsp?cid=104303">Developer Days 2006 conference</a> in Melbourne last week was a similar mixed bag to the first. Be sure to read <a href="http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/">my coverage of day one</a> if you missed it.</p>
<p>Before the day&#8217;s sessions began in earnest, Sun organiser <a href="http://blogs.sun.com/coldrick">David Coldrick</a> got up to plug two useful resources for Java developers to keep up with the latest developments between Developer Days conferences: <a href="http://javaposse.com/">The Java Posse podcast</a> (which I highly recommend as well!), and <a href="http://www.javapassion.com/">javapassion.com</a>, which I have <a href="http://www.sitepoint.com/blogs/2005/09/14/learn-j2ee-programming-with-passion/">covered in this blog</a> before.</p>
<h2 id="session-lee"><cite>Building Great Games for the Mobile World</cite>, Chuk Munn Lee (Sun)</h2>
<p>Having <a href="http://j2mebomber.sourceforge.net/">done some work on mobile games</a> already, I was hoping for some insight into the technical issues that face game developers on this platform: device-specific API fragmentation, application size and processing speed limits, inconsistent control methods, and more. What we got instead was a non-technical overview about the pros and cons of developing games for mobile handsets as compared to the PC- and console-based game platforms.</p>
<div id="adz" class="vertical"></div><p>In brief, <a href="http://java.sun.com/javame/">Java Micro Edition (ME)</a> is a lightweight platform that can let you produce a fully-realized game for millions of potential users with as little as one man-month of development time. Successful games for this platform should take into account the fact that gamers will be playing on-the-go, for brief periods, and may stop playing at any time. Given this, the popular practice of adapting old games from other platforms to handsets is not a great approach.</p>
<h2 id="session-ritter"><cite>Optimizing Performance for Java SE &amp; Java EE Applications</cite>, Simon Ritter (Sun)</h2>
<p>Again, my expectations were a bit off the mark for this session (I really wish the conference programme had included session abstracts). Rather than a grab bag of useful techniques for writing speedier code, or an overview of certain common performance anti-patterns, what we got was a tutorial on tuning the garbage collection algorithms in the Sun Java Virtual Machine (VM) using a variety of undocumented (or poorly documented) <a href="http://java.sun.com/performance/reference/whitepapers/tuning.html">command-line switches</a>.</p>
<p>I quite enjoyed the explanation of the VM&#8217;s heap management techniques, and how they allow for the tendency of Java applications to make extensive use of short-lived objects that must be garbage collected quickly and efficiently for Java to work, as well as the look at the <a href="http://java.sun.com/performance/reference/whitepapers/tuning.html#section4.2.5">biased locking</a> algorithm that was introduced to further improve performance in version 1.5.0_06 of the Java 5 runtime. But the vast majority of the performance tweaks discussed would apply really only to high-load, multi-processor servers, so were little more than technical curiosities for me.</p>
<h2 id="session-patel"><cite>SOA, JBI, BPEL: Strategy, Design &amp; Best Practices</cite>, Rima Patel (Sun)</h2>
<p>In <a href="http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/#session-rao2">his day one session</a>, Ashwin Rao showed off some of the tools Sun is cooking up for developers to tackle the unique challenges of building applications based on discrete, specialized services &#8212; a practice known as Service Oriented Architecture (SOA). Ms. Patel took a step back with this session and looked at the motivations and technical challenges of SOA, which must be considered long before development tools come into the picture.</p>
<p>While developers are used to facing new accronyms and buzzwords that, once grasped, bring technical benefits including performance, usability, and ease of development, SOA is very different, in that the motivations that drive it are largely business-centric.</p>
<p>Many big businesses today are straining under the weight of overlapping legacy systems that have been developed and connected on an ad hoc basis, on conflicting, often vendor-specific platforms. The SOA approach to this problem is to identify key <em>services</em> that exist within these systems and to either reimplement them or wrap the existing systems in interfaces such that applications can discover and access them openly, asychronously, statefully and securely through the exchange of XML documents that mirror the business documents that would change hands in the paper-based equivalents to the relevant business processes.</p>
<p>Ms. Patel went on to briefly outline the <a href="http://java.sun.com/integration/">Java Business Integration (JBI)</a> specification, which provides the plumbing for SOA applications in the form of an open framework that is both vendor and platform neutral. Not a bad option if you&#8217;re rearchitecting the IT systems for a major bank, which I&#8217;m not. For me, this session was mainly about confirming that my vision of what SOA means roughly matches with Sun&#8217;s. I make no guarantees as to whether or not it matches yours.</p>
<h2 id="session-ritter2"><cite>Java SE: Tiger, Mustang and Dolphin</cite>, Simon Ritter (Sun)</h2>
<p>A relatively straightforward session, this talk rattled through an overview of the most high-profile features coming in <a href="https://mustang.dev.java.net/">Java 6 (codenamed Mustang)</a> later this year. There&#8217;s plenty of <a href="http://blogs.sun.com/roller/page/dannycoward?entry=the_10_things_you_need">good coverage</a> of this going around, especially because Sun has been very open about Mustang&#8217;s development, with weekly builds available for download and testing.</p>
<p>Changes most likely to affect web developers in Java 6 are: <a href="http://blogs.sun.com/roller/page/dannycoward/20060227">full support for XML web services</a> built in, the inclusion of the Rhino scripting engine, which will permit JavaScript code to run on the Java VM and make full use of Java class libraries; JDBC 4.0, which will <a href="http://weblogs.java.net/blog/lancea/">simplify and enhance</a> the primary API for Java applications connecting to databases; and <a href="http://blogs.sun.com/roller/page/dannycoward/20060310">better debugging support</a>, making it easier to detect and diagnose deadlocks, memory leaks, and other runtime issues.</p>
<p>Personally, I&#8217;m most excited about the <a href="http://weblogs.java.net/blog/chet/archive/2006/02/these_are_some.html">enhancements for desktop-based Java applications</a>, but Mr. Ritter skipped over most of these in favour of more core changes to the platform.</p>
<p>Mr. Ritter did take a few minutes to give some hand-wavy examples of the sorts of things planned for Java 7 (codenamed Dolphin), including support for XML code appearing natively within Java code, and bytecode changes to support dynamic languages (such as scripting languages) running on the Java VM, but with almost nothing set in stone for Dolphin, every scrap of information was accompanied by the disclaimer: &#8220;On the other hand, we might not do this at all.&#8221;</p>
<h2 id="session-chen"><cite>Making AJAX more effective with servlets, JavaServer Pages Technology, &amp; JavaServer Faces Technology</cite>, Doris Chen (Sun)</h2>
<p>The confused title should have scared me off, but I went along to this session hoping at least to see some elegant examples of supporting AJAX applications within server-side Java code. I gave up and left after watching roughly 45 minutes of the speaker&#8217;s confused and confusing attempts to simply define what AJAX <em>was</em>. I wasn&#8217;t the only one to walk out.</p>
<p>I hate to pan the presenter further, but it&#8217;s a sad day indeed when you can&#8217;t keep a room full of developers interested in a presentation about AJAX.</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/04/10/sun-developer-days-2006-day-two/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sun Developer Days 2006: Day One</title>
		<link>http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/</link>
		<comments>http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 11:08:20 +0000</pubDate>
		<dc:creator>Kevin Yank</dc:creator>
		
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/</guid>
		<description><![CDATA[Sun Microsystems is winding up a tour of Australia and New Zealand with the final stop of its Sun Developer Days 2006 conference today and tomorrow in Melbourne. Fellow SitePointer Lachlan Donald and I were there today to take in the Java vibes, and as with most free conferences there was a great deal of [...]]]></description>
			<content:encoded><![CDATA[<p>Sun Microsystems is winding up a tour of Australia and New Zealand with the final stop of its <a href="http://au.sun.com/events/developer/index.jsp?cid=104303">Sun Developer Days 2006</a> conference today and tomorrow in Melbourne. Fellow SitePointer Lachlan Donald and I were there today to take in the Java vibes, and as with most free conferences there was a great deal of variation in the quality of the sessions we attended.</p>
<h2 id="session-brewin"><cite>Sun Developer Tools</cite>, Bob Brewin (Sun)</h2>
<p>In his keynote, Mr. Brewin spoke chiefly about the push Sun is making towards Ease of Development (EoD) across the entire Java platform and the set of Sun developer tools. Key examples of this included the <a href="http://java.sun.com/developer/technicalArticles/releases/j2se15/">new language features in Java SE 5.0</a>, the release as a free download of <a href="http://developers.sun.com/prodtech/javatools/jscreator/">Java Studio Creator</a>, and the <a href="http://java.sun.com/j2ee/persistence/faq.html">Java Persistence API</a>, which is set to replace entity beans in EJB 3.0. This is all old news, however, and Brewin looked like he&#8217;d delivered this keynote fifty times before. Though some of the improvements being made to the Java landscape may be inspiring, this session was not.</p>
<h2 id="session-ritter"><cite>Changing the Landscape of Software Development</cite>, Simon Ritter (Sun)</h2>
<div id="adz" class="vertical"></div><p>Mr. Ritter&#8217;s keynote essentially covered all of the ways Sun is fostering open source development with Java. Again, there was very little in this talk that would have been news to the people in the room, and Ritter seemed vaguely embarassed by this fact (even wondering aloud at some of the choices of imagery &#8220;his boss&#8221; had made in assembling his slides for him). The end of the session, which described all the ways in which Java was <em>as good as</em>, if not actually open source, seemed downright defensive&#8230; which was  especially odd because a quick poll of the audience indicated only a small minority thought that it should be.</p>
<h2 id="session-rao1"><cite>Rapid Web Application Development Using Sun Java Studio Creator</cite>, Ashwin Rao (Sun)</h2>
<p>Very much a quick introduction, this session took a quick spin through <a href="http://developers.sun.com/prodtech/javatools/jscreator/">Java Studio Creator</a>, a tool for drag-and-drop web application development using <a href="http://java.sun.com/javaee/javaserverfaces/">JavaServer Faces (JSF)</a>. I&#8217;ve seen a couple of introductions like this in the past, and while I applaud what Sun has achieved with Creator in terms of making it possible to throw together Java web applications in a hurry, I&#8217;m still not sold on its merit for producing best practice code (at least, not out of the box).</p>
<p>Much like Microsoft&#8217;s <a href="http://msdn.microsoft.com/vstudio/express/vwd/">Visual Web Developer</a> edition of Visual Studio (with which Creator was obviously designed to compete), Creator lets you quickly produce web user interfaces by dragging ready-made components onto a design view. I shudder every time I consider the accessibility repercussions of using this development mechanism naively (particularly in the default &#8220;grid&#8221; layout mode, which makes use of absolute pixel coordinates to position all page elements).</p>
<p>That said, the JSF technology that Creator is based on is certainly capable of producing standards compliant, accessible web sites. What I want to know is whether the quick-and-dirty results that Creator seems so ready to produce are the fault of the tool (in which case I humbly suggest Sun should go back to the drawing board), the bundled components (in which case a dedicated group of developers could produce a more &#8220;responsible&#8221; set of components to use in Creator), or just the way the developer chooses to use them (in which case SitePoint should probably write a book similar to <a href="http://www.sitepoint.com/books/dreamweaver1/">its recent Dreamweaver title</a>).</p>
<h2 id="session-lokman"><cite>SAP Technical Session: Running Open Source based Java EE Applications on the SAP Web AS</cite>, Taib Lokman (SAP)</h2>
<p>While I&#8217;ve certainly seen the name <a href="http://www.sap.com/">SAP</a> bandied about, I didn&#8217;t really understand how it fit into the Java space. It turns out that SAP has been in the <a href="https://www.sdn.sap.com/">Java enterprise development business</a> for awhile, and today it offers its own suite of Java EE servers and Eclipse-based development tools. SAP sponsored the conference, so I was expecting a sales pitch in this session. What I got instead was unexpected, and very confusing.</p>
<p>In his talk, Mr. Lokman introduced and even demonstrated a number of popular open source Java enterprise technologies (Struts, Axis, Ant, etc.), seemingly held them up as great things that we should all be using, and then explained that SAP had its own more or less proprietary alternative that you would have to deal with if you were ever called upon to work on a project that relied on SAP&#8217;s platform. And that was it. Seriously, it was like &#8220;Who uses Struts? Great! Isn&#8217;t it cool? But if you use SAP, you&#8217;ll need to learn NetWeaver, which is quite different, instead.&#8221; Rinse and repeat.</p>
<h2 id="session-patel"><cite>Persistence for Java SE &amp; Java EE</cite>, Rima Patel (Sun)</h2>
<p>As the co-author of the book <cite>Mastering EJB, 3rd Ed.</cite> (<a href="http://www.theserverside.com/books/wiley/masteringEJB/index.tss">free PDF download</a>), which apparently has a 4th edition coming out soon that will also be freely available for download, Ms. Patel really knows her stuff when it comes to Enterprise JavaBeans (EJB). That translated to a dynamic and illuminating talk about what we can expect from the soon-to-be-released EJB 3.0.</p>
<p>The single biggest change to EJB 3.0 is the radical rethinking and simplification of entity beans. Used to represent database records (and other persistent data items) as Java objects that can participate in transactions and have their state synchronized with the database, entity beans have been a serious pain point in EJB for a long time. They require developers to write a lot of repetitive boilerplate code, and were limited in many ways that Java objects normally aren&#8217;t. In EJB 3.0, entity beans have been scrapped in favour of the <a href="http://java.sun.com/j2ee/persistence/faq.html">Java Persistence API</a>, which lets you use label plain old Java objects (POJOs) as entities, which can do all the things entity beans could do, but without all the tedious coding overhead and without all the limitations of entity beans.</p>
<p>For awhile now, Java developers have had the benefits of a lot of the Java Persistence API in the form of <a href="http://www.hibernate.org/">Hibernate</a>, an open source library that maps relational database records to Java objects. With the Java Persistence API, however, those powerful capabilities will not only become a standard part of the Java EE platform, but they will be able work within EJB architectures, with all the resource and transaction management that EJBs were designed to provide.</p>
<h2 id="session-rao2"><cite>Tackling Complexity &amp; Improving Productivity in Developing to SOA</cite>, Ashwin Rao (Sun)</h2>
<p>I haven&#8217;t had much to do with Service Oriented Architecture (SOA), an emerging vision of enterprise development where discrete, specialized services can be assembled and orchestrated together to produce useful applications with high degrees of scalability and flexibility. It&#8217;s certainly the direction that large enterprises are moving in, but at ground level where most of the developers in our audience reside, it&#8217;s not much of a factor. This session was an opportunity to check in with the state of SOA.</p>
<p>Mr. Rao briefly outlined the realities of SOA today, and then concluded that managing the resulting complexity means coming up with tools that address the unique challenges of orchestrating disparate services in a useful way. This offered a convenient lead-in to a demo of <a href="http://developers.sun.com/prodtech/javatools/jsenterprise/">Java Studio Enterprise 8</a>&#8217;s UML modeling features, and the visual designer for Business Process Execution Language (BPEL) that Sun recently debuted in <a href="http://www.netbeans.org/community/releases/55/">a preview of the Netbeans 5.5 Enterprise Pack</a>.</p>
<p>The BPEL designer lets you assemble multiple web services together to produce composite services, essentially by drawing a flowchart to generate an XML description of the required process behind the scenes. Although the flowcharts produced by the tool were undeniably slick, whenever we glanced that the generated XML code it seemed to me that we could have written that code in much less time than it took to step through the wizards required to produce it graphically. Assuming SOA takes off and composite services will begin to involve more complex interactions than the simple demo we saw, I could see the value in being able to visualize those interactions rather than slogging through XML code; nevertheless, I was left with the impression that the problems of SOA that need to be solved are still being discovered, and as a result the tools are at least a generation away from becoming truly useful in the wild.</p>
<h2 id="session-caicedo"><cite>NetBeans Extreme: Matisse, Collaboration, Profiling and Plug-ins</cite>, Angela Caicedo (Sun)</h2>
<p>In this marathon 90-minute session, Ms. Caicedo demonstrated just about every aspect of <a href="http://www.netbeans.org/">NetBeans 5.0</a>, the latest version of Sun&#8217;s free Java IDE, that has been enhanced in this latest release.</p>
<p>NetBeans 5.0 caused a splash in the desktop application space by introducing <a href="http://form.netbeans.org/">Matisse</a>, a remarkable new GUI layout tool that removes a lot of the complexity that Java developers have come to accept from the Java&#8217;s Swing GUI API without sacrificing much (if any) flexibility or quality in the finished product. Instead of relying upon Swing&#8217;s existing <code>LayoutManager</code> classes (such as the infamous <code>GridBagLayout</code>), Matisse uses its own <code>GroupLayout</code> class, which has since been slated for inclusion in the upcoming <a href="http://java.sun.com/javase/6/">Java SE 6.0</a>. The demo of Matisse in this session was enticing, if not entirely convincing to a veteran <code>GridBagLayout</code> user like me. It may be miles and miles ahead of any visual GUI layout tool Java has had in the past, but the demo suffered from a couple of minor layout issues that I could have avoided with <code>GridBagLayout</code>, and I&#8217;m curious if Matisse offers a solution to these.</p>
<p>The collaboration features were certainly a surprise &#8212; I&#8217;m not sure how I missed their mentions in the excitement surrounding NetBeans 5.0&#8217;s release. Similar features formed the major enhancements in JBuilder 2006 last year, but with the future of that IDE in serious jeopardy, it&#8217;s nice to see these features a healthy IDE like NetBeans. Essentially, the IDE includes an instant messaging client that allows you not only to chat to your fellow developers, but also to share your local project code, browse and edit that code collaboratively through shared views, and even run shared debugging sessions to locate problems together. I had assumed that, for this to work, both developers would need to have their own copy of the project in question on their system, but the demo showcased the fact that shared coding sessions are actually centered around one developer&#8217;s copy of the project, and all the other developers need is a copy of NetBeans to participate.</p>
<p>Next up, Caicedo took the profiling features in NetBeans for a spin, pinpointing the thread responsible for hanging the interface of a simple Swing application, and then identifying a slow method in a web application. The new profiler is one of NetBeans&#8217;s biggest advantages over the other, more popular free Java IDE, Eclipse, which lacks built-in profiling. While not quite as powerful as a dedicated profiling product like <a href="http://www.yourkit.com/">YourKit Java Profiler</a>, the tools in NetBeans 5.0 are certainly respectable, and will assist in resolving all but the twistiest of performance issues.</p>
<p>Last, but not least, we got to watch a complete plug-in for the NetBeans IDE come to life before our eyes. With Java development spanning so many different application domains, it&#8217;s impossible for a single IDE to bundle every tool that a given developer might need. That&#8217;s why all the big IDEs these days place a great deal of emphasis on extensability through plug-in architectures. NetBeans is no exception, and with the integrated wizards and packaging tools Caicedo was able to add a Google search field to the NetBeans toolbar in mere minutes. IDE plug-in development, at least for NetBeans, is certainly a far less intimidating discipline than I had previously imagined.</p>
<p>So will I be switching to NetBeans tomorrow? I&#8217;m afraid not. Although NetBeans 5.0 has made some impressive strides, and the new pieces in the tool are certainly impressive, many of the basic facilities still have a &#8220;toy IDE&#8221; feel that I just can&#8217;t get past. Lack of fundamental facilities like multiple run configurations and project groups just don&#8217;t quite cut it for me. Still, there&#8217;s a lot to like in new features and old (I especially appreciate the use of Ant for all build tasks), so I&#8217;ll certainly be keeping an eye on NetBeans.</p>
<p>All up, after a weak start, the day got a great deal more interesting as talk turned from general spin to down-and-dirty coding. Hopefully tomorrow will hold more of the same!</p>
<script src="http://ads.aws.sitepoint.com/adjs.php?region=136&amp;did=adz&amp;adtype=vertical" type="text/javascript"></script>]]></content:encoded>
			<wfw:commentRss>http://www.sitepoint.com/blogs/2006/04/05/sun-developer-days-2006-day-one/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
