<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #205 - Jul 26, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-07-26">

<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# 26-Jul 18:12 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #205 - Jul 26, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #205 - Jul 26, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-07-26.html'>https://netbeans.org/community/news/newsletter/2005-07-26.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>etBeans Governance Board Elections - Second Call for Nominations
It's time again to elect a new NetBeans Governance Board! The current nominations
and the actual voting results can also be followed on the NetBeans.org website.
Please submit your nominees. Read more at:
&lt;<a href="https://netbeans.org/community/articles/nbelections.html">https://netbeans.org/community/articles/nbelections.html</a>&gt;

NetBeans reviewed by Network Computing
NetBeans 4.1 has been reviewed on networkcomputing.com. "It's been a long time
since an IDE excited me as much as NetBeans 4.1. Snappy performance on a new
build of Swing coupled with features such as refactor and no-code Web services as
well as its ability to generate and interact with multiple types of beans and
it's free?"
&lt;<a href="http://www.nwc.com/showitem.jhtml?articleID=164903170">http://www.nwc.com/showitem.jhtml?articleID=164903170</a>&gt;

JBoss Plug-in Available on the Beta Update Center
The early access version of the server plugin for the JBoss 4 server is now
available on the Beta Update Center for NetBeans 4.1. The features of the plugin
include:
  * Ability to register a local installation of JBoss 4.0.x
  * Starting and stopping the server, basic management features
  * Deployment of J2EE Applications, EJB Modules and Web Modules
  * Debugging applications in JBoss
  * Minimal handling of JBoss-specific deployment descriptors
To try out the JBoss plugin, download it from the Beta Update Center in
NetBeans 4.1. Select Tools -> Update Center and make sure that NetBeans
Update Center Beta is selected.

JBuilder Project Module for NetBeans IDE 4.1
A new module is available which allows you to migrate your JBuilder Project to
NetBeans IDE 4.1. You can find the write-up on the module
here &lt;<a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>&gt;.
You can download it from the NetBeans Update Center Beta today. You need to be
running NetBeans 4.1. Once installed you can go to :
File > Import > Builder2005 J2SE Project and  open the wizard. Remember it is
Beta - so if you have feedback you should share it. Basically you enter the
location of the JBuilder file (.jpx) and then select Finish. NetBeans then leaves
the files where they are and the importer then creates a NetBeans project for the
selected JBuilder project. Coupled with the new
Eclipse Project Import module &lt;<a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>&gt;
-  these convenience modules are useful for those developers transitioning from
Eclipse and JBuilder to NetBeans.

WebApps Hotfix Released for NetBeans IDE 4.1
WebApps hotfix is available on NetBeans 4.1 Hotfix Update Center starting today.
The hotfix contains fixes for these 4 bugs:
  * Java Code Completion Fails for Free-Form Project - &lt;<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=59031">https://netbeans.org/bugzilla/show_bug.cgi?id=59031</a>&gt;
  * JSPs not shown in web freeform - &lt;<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58498">https://netbeans.org/bugzilla/show_bug.cgi?id=58498</a>&gt;
  * Impossible to deploy webapp - &lt;<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58255">https://netbeans.org/bugzilla/show_bug.cgi?id=58255</a>&gt;
  * Cannot shut down bundled Tomcat - &lt;<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=58554">https://netbeans.org/bugzilla/show_bug.cgi?id=58554</a>&gt;

Learn AJAX with NetBeans
An updated version of Java BluePrints Solution Catalog for NetBeans 4.1 is
available from NetBeans update center. It contains an early access of six new
solutions focused on building Asynchronous JavaScript and XML (AJAX) with Java
2 Enterprise Edition. Learn how to write interactive web components such as
auto completion, progress bar or realtime form validation.

Demo of EJB 3 Development in NetBeans
As you may guess, the NetBeans team is busy working on support for the next
generation of the Java Enterprise Edition platform. Soon we will start publishing
development builds of Java EE 5 support, that integrate with and deploy to the
open source Glassfish Server &lt;<a href="http://glassfish.dev.java.net/">http://glassfish.dev.java.net/</a>&gt;.
To give you a feel for how enterprise development will change, we created a Flash
demo, which previews the development of EJB 3.0 applications in NetBeans.
&lt;<a href="https://netbeans.org/projects/serverplugins/NetBeans_EJB3.html">https://netbeans.org/projects/serverplugins/NetBeans_EJB3.html</a>&gt;

Buy Now & Save On the NetBeans IDE Field Guide
The Only Complete Guide and Reference for NetBeans IDE 4.1 is now on sale at
Amazon.com for $30 US with free shipping within the United States. This is a
savings of $15. NetBeans IDE Field Guide : Developing Desktop, Web, Enterprise,
and Mobile Applications is a comprehensive introductory guide and task reference--
it's the fast-answers NetBeans "cookbook" for every Java developer. The authors
show you how to use NetBeans to build applications for the desktop, web, enterprise,
and handset.
&lt;<a href="http://www.amazon.com/exec/obidos/ASIN/0131876201/ref%3Dpe%5Fsnp%5F201/102-4843476-7252903">http://www.amazon.com/exec/obidos/ASIN/0131876201/ref%3Dpe%5Fsnp%5F201/102-4843476-7252903</a>&gt;

NetBeans IDE, Sniffers, and the Deviant Computer User"
How secure is your web service? Very secure? Slightly secure? Somewhat secure?
Maybe you should use a sniffer, just to make sure that everything is really as
secure as you think. If you don't know how to pretend to be a hacker, how will
you be able to stop a real one? And if you're wondering "What's a sniffer?",
then you have all the more reason to read Geertjan's blog entry ", here:
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/20050722">http://blogs.sun.com/roller/page/geertjan/20050722</a>&gt;

NetBeans Plug-ins
If you've never written a NetBeans plug-in before, but have always wanted to...
several tutorials have recently been made available (in draft form) especially
for you! Read about them here : &lt;<a href="http://blogs.sun.com/roller/page/geertjan/20050710">http://blogs.sun.com/roller/page/geertjan/20050710</a>&gt;
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_file_templates">http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_file_templates</a>&gt;
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_netbeans_server">http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_netbeans_server</a>&gt;
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_extend_the">http://blogs.sun.com/roller/page/geertjan/?anchor=brand_new_tutorial_extend_the</a>&gt;.  
And then let us know what you think of them!

Writing Docs Is Fun! And easy.
Read John's blog to find out everything you need to know to create your own helpset and
integrate it into the NetBeans IDE helpset. Go here:
&lt;<a href="http://blogs.sun.com/roller/page/johnc">http://blogs.sun.com/roller/page/johnc</a>&gt;

IncaX Plug-in for NetBeans IDE 5.0
The Inca X plug-in v3.7 (beta) is currently shipping with Jini 2.1 beta and requires
NetBeans IDE 5.0 development version &lt;<a href="http://services.netbeans.org/downloads/download.php?a=n&p=1">http://services.netbeans.org/downloads/download.php?a=n&p=1</a>&gt;.
The Inca X [CE] plug-in is available as a free download and is installed via the NetBeans
Update Center Wizard. Download the Inca X plug-in and more information on getting started.
&lt;<a href="http://www.incax.com/docs/netbeans-ce/index.htm">http://www.incax.com/docs/netbeans-ce/index.htm</a>&gt;

Business 2 Mobile Plug-in For NetBeans IDE 5.0
Net Caboodle has announced the general availability of version 2.5 of the mobile
gateway plugin for NetBeans 5.0 MIDP Business to Mobile.  The Net Caboodle plugin for
NetBeans makes it easy to develop MIDP clients for your business services, without the
need to write any of your own protocol code. When used with the NetBeans Mobility Pack,
you'll find that writing and deploying mobile business content just got a whole lot
easier. To get started writing mobile business content applications and to download this
plug-in follow here:
&lt;<a href="http://www.netcaboodle.com/docs/netbeans-install.htm">http://www.netcaboodle.com/docs/netbeans-install.htm</a>&gt;

Code Analyzer 0.7.0 Available for NetBeans IDE 4.1
Code Analyzer project has just released version 0.7.0 with some major
compatibility enhancements. Modifications were made to the file processor class
to improve performance. The HTML User's Guide document was updated. The "About"
dialog was updated. The HTML report file header format was enhanced. Code
Analyzer was confirmed to be compatible with JSE 1.5 and NetBeans 4.1. The
distribution jar was changed to be compressed and to include the source.
&lt;<a href="http://freshmeat.net/projects/codeanalyzer/?branch_id=59330&release_id=202034">http://freshmeat.net/projects/codeanalyzer/?branch_id=59330&release_id=202034</a>&gt;

XTT - Smart Web Clients for Java for NetBeans IDE 4.1
XTT v5.1 plugs into NetBeans 4.1 and enables the seamless build of rich thin-
client complex transactional Swing based UI applications for the SOA Enterprise
against Web Services, Object Persistence Layers (Hibernate, JDO, POJO's),
Relational Databases, and even call remote Java logic on the App server. Try
the XTT StockTrader Demo and see for yourself the type of Rich Internet
Application functionality that can be delivered using XTT:
&lt;<a href="http://www.insitechinc.com/demo.php3">http://www.insitechinc.com/demo.php3</a>&gt;

GlobalEnvironment Plug-in for NetBeans IDE
GlobalEnvironment provides globally shared key-value pairs for different Java
threads, JVMs, J2EE (EJB and JSP), Java and non-java applications. This new plug-in
is avaialble through the NetBeans module catalogue and on Acelet Corporation's web
site. It is available as a free download.
&lt;<a href="http://www.acelet.com/">http://www.acelet.com/</a>&gt;

DB Visual Architect for NetBeans (DBVA-NB)...
is an Object-Relational Mapping (ORM) tool acting as a bridge between object
model, data model and relational database.  DBVA-NB automates the mapping between
them supporting the synchronization and generation of code and database, which
reduces the development time. DBVA-NB not only supports the latest standards of
Java notations, but also the latest and  full UML 2.0 diagrams and notations.
&lt;<a href="http://www.visual-paradigm.com/product/dbva/nb/">http://www.visual-paradigm.com/product/dbva/nb/</a>&gt;

Visual Paradigm Smart Development Environment 3.0 for NetBeans/ Sun One (SDE-NB)...
is a UML modeling plug-in for NetBeans supporting model-driven development.
SDE-NB provides a unified modeling environment with NetBeans, not only the
facilities of analysis such as Textual Analysis, Domain Analysis, Use Case
Modeling and CRC Card Support, but also the modeling features such as a series
of UML diagrams which truly conform to the latest UML 2.0 notations. SDE-NB also
provides the full round-trip code generation and code reverse engineering
functions. SDE-NB being integrated to NetBeans reduces the efforts in all phases
of the software development life cycle.
&lt;<a href="http://www.visual-paradigm.com/product/sde/nb/">http://www.visual-paradigm.com/product/sde/nb/</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>