<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #242 - May 30, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-05-30">

<link rel="stylesheet" type="text/css" href="/netbeans.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 30-May 15:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #242 - May 30, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #242 - May 30, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-05-30.html'>https://netbeans.org/community/news/newsletter/2006-05-30.html</a>&gt;<br>
Interested in becoming a newsletter editor?  We're always looking<br>
for editors to help out. Contact <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
<hr><pre>* PLEASE NOTE * NetBeans.org Upgrade, June 5th
CollabNet will take NetBeans.org down for an upgrade of the SourceCast
infrastructure on Monday, June 5th. The upgrade will begin at 18:00
GMT, and will last for 24 hours. All services, including CVS,
IssueZilla, dynamic site content and mailing lists will be completely
unavailable during this time. Static html and downloads will be
unaffected.  No mail will be lost.

Developers: Compete for $50,000 Plus Get 100 CPU hours on Sun Grid
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=499">http://services.netbeans.org/newsletter/story.php?id=499</a>&gt;

Creating a CRUD application with Java EE 5 and NetBeans 5.5
Roumen recorded a flash demo which shows how easily you can create a
simple web application with Java EE 5 and NetBeans 5.5. Discover how
you can take advantage of new code generation wizards and other
features which simplify EE development using NetBeans:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=501">http://services.netbeans.org/newsletter/story.php?id=501</a>&gt;

Wicket Support Open Sourced!
Petr and Geertjan open sourced their work on Wicket support for the IDE.
Have a look... and check out a cool pic of Petr and Geertjan with
Alcatraz in the background.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=500">http://services.netbeans.org/newsletter/story.php?id=500</a>&gt;

Trying out JBoss' Seam
Do you want to truly understand Seam? This blog walks you through
converting a standard JSF / EJB 3.0 application to one that
incorporates JBoss' Seam framework.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=502">http://services.netbeans.org/newsletter/story.php?id=502</a>&gt;

JAXX Support
Interested in the JAXX framework?  If so, check out this blog entry
from Gregg Sporar. He shows how easy it is to get basic support in the
NetBeans IDE for using the JAXX framework.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=503">http://services.netbeans.org/newsletter/story.php?id=503</a>&gt;

The Best Feature of the Upcoming NetBeans IDE 5.5 (Part 3)
A new twist on Geertjan's popular blog series, this time using JBoss.
Brought to you by Brian Leonard...
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=504">http://services.netbeans.org/newsletter/story.php?id=504</a>&gt;

Create PDF Inside the IDE?
Work is being done on letting you create PDF files from any file open
in NetBeans IDE.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=505">http://services.netbeans.org/newsletter/story.php?id=505</a>&gt;

JavaOne Keynote Demo Video with Petr & Martin
If you missed the keynote demo at JavaOne featuring James Gosling, Petr
& Martin you can watch it online now. The demo is real world example of
a tracking system.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=506">http://services.netbeans.org/newsletter/story.php?id=506</a>&gt;

RFID Software - Why should developers care?
A NetBeans plug-in for RFID developers? Read more at Pamela's weblog.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=507">http://services.netbeans.org/newsletter/story.php?id=507</a>&gt;

Three New NetBeans Plug-ins: Copy & Paste History, Two JPDA Plug-ins
Charles Ditzel takes a brief look at some new modules to hit the shelf.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=508">http://services.netbeans.org/newsletter/story.php?id=508</a>&gt;

XTest for NetBeans Modules (tests,coverage, results)
Interested in testing of applications based on NetBeans platforms? Now
is the time to become familiar with the XTest module which can be
downloaded from NetBeans Update Center. Check out a demo and get more
information here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=509">http://services.netbeans.org/newsletter/story.php?id=509</a>&gt;

Spellchecker for NetBeans IDE
Jan Lahoda digs deeper than a basic how-to in his blog entry. Learn
about the Spellchecker module's more complex use and the internal
workings. If you are interested in contributing be sure to check out
the TODO list.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=510">http://services.netbeans.org/newsletter/story.php?id=510</a>&gt;

The JBI Manager
The JBI Manager is a NetBeans plug-in that extends the NetBeans IDE to
manage and monitor JBI components and assemblies, such as Service
Engines, Binding Components, Shared Libraries, Service Assemblies, and
Service Units. More information can be found at:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=511">http://services.netbeans.org/newsletter/story.php?id=511</a>&gt;

NetBeans Plug-in for World of Java is Out (Beta Version)
WOJ, World of Java, mainly consists in a database of more than 2500
open source Java projects and revisions which can be accessed from a
dedicated NetBeans plug-in with absolutely no configuration except a
login and password.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=512">http://services.netbeans.org/newsletter/story.php?id=512</a>&gt; </pre><hr>This issue of NetBeans Weekly News was brought to you by Robert Demmer.<br>
The next editor will be Robert Demmer. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>