<HTml>
<head>
<title>NetBeans at the 2006 JavaOne Conference</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<META NAME="description" CONTENT="Information about NetBeans Software Day at the 2006 JavaOne Conference - talks, schedules, BOFs and more">
<link rel="stylesheet" type="text/css" href="../../../../netbeans.css">

<style type="text/css">
.tbl {
	border-collapse:collapse;
}
.tbl td {
	border:1px solid silver;
	padding: 4px;
}
</style>

</head>

<body>

<h1>NetBeans Software Day at the 2006 JavaOne Conference</h1>

<p>
<!-- <div style="float:right;">
<a href="nb-day.html">
<img src="../../../../images_www/articles/worldtour/NB_250px.gif" alt="NetBeans logo" border="0"
style="margin-right:10px;" alt="NetBeans Software Day 2006" title="NetBeans Software Day 2006"></a></div>
<div style="margin-top:13px;"> -->

<a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne 2006</a> took place
at the <a href="http://www.moscone.com/">Moscone Convention Center</a> in San
Francisco, California between May 16 and 19. The full schedule of sessions and BOFs is included below.

<P>Get full JavaOne details, registration and more at the
<a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne website</a>.

<P>
On Monday, May 15, the day before the 2006 JavaOne Conference, the
NetBeans Software Team hosted a FREE companion event at The Argent Hotel
near Moscone Center. James Gosling, the father of Java, and other
Java luminaries discussed NetBeans and the future of Java developer tools.
You can read the NetBeans Software Day at the 2006 JavaOne Conference 
<a href="nb-day.html">schedule</a> and <a href="nb-day-report-2006.html">report</a>.

<h2>NetBeans Related Hands-On Labs</h2>

<p>The following is the list of NetBeans related labs. 
The complete lab files are available for <a href="http://www.javapassion.com/javaone2006/handsonlab/">download</a> on javapassion.com.<br/>
</p>

<table class="tbl">
<tr style="background-color: #f2f7fb;">
	<td><b>Date, Time</b></td>
	<td><b>Code</b></td>
	<td><b>Name</b></td>
</tr>
<tr>
	<td>16-May-06, 2:00 PM</td>
	<td>LAB-8105</td>
	<td>NetBeans Enterprise Pack: Basic UML Modeling </td>
</td>
<tr>
	<td>17-May-06, 2:45 PM</td>
	<td>LAB-5250</td>
	<td>Building Production Quality GUI Applications using NetBeans 5.0 GUI Builder (Matisse) </td>
</td>
<tr>
	<td>18-May-06, 9:45 AM</td>
	<td>LAB-4255</td>
	<td>AJAX: Riding the Web Application Horse a Little Further </td>
</td>
<tr>
	<td>18-May-06, 2:45 PM</td>
	<td>LAB-8125</td>
	<td>NetBeans Enterprise Pack: BPEL</td>
</td>
<tr>
	<td>19-May-06, 10:45 AM</td>
	<td>LAB-5120</td>
	<td>Application Monitoring and Management with NetBeans 5.0</td>
</td>
<tr>
	<td>18-May-06, 11:30 AM</td>
	<td>LAB-5106</td>
	<td>NetBeans 5.0: Plug-in Development</td>
</td>
<tr>
	<td>19-May-06, 3:45 AM</td>
	<td>LAB-6205</td>
	<td>Mobile Applications: Visualize it, Build it, Deploy it to Many Devices</td>
</td>

</table>

<P><h2>JavaOne Sessions and BOFs</h2>
<p>This table contains both Sessions and BOFs chronoligically ordered</p>

<table class="tbl">
<tr style="background-color: #f2f7fb;">
	<td><b>Date, Time</b></td>
	<td><b>Code</b></td>
	<td><b>Name</b></td>
</tr>
<tr>
	<td>16-May-06,&nbsp;5:45&nbsp;PM</td>
	<td>TS-3361 </td>
	<td><a href="#TS-3361">Java EE 5 Platform: Even Easier With Tools</a></td>
</tr>
<tr>
	<td>16-May-06,&nbsp;9:30&nbsp;PM</td>
	<td>BOF-2496</td>
	<td><a href="#BOF-2496">Building Development Tools on Top of the NetBeans IDE</a></td>
</tr>
<tr>
	<td>16-May-06,&nbsp;10:30&nbsp;PM</td>
	<td>BOF-0678</td>
	<td><a href="#BOF-0678">Meet the "Java Posse"</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;11:00&nbsp;AM</td>
	<td>TS-4255</td>
	<td><a href="#TS-4255">MHP/OCAP iTV Applications In a Nutshell</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;12:15&nbsp;PM</td>
	<td>TS-4916</td>
	<td><a href="#TS-4916">Creating Professional Swing UIs Using Matisse GUI Builder</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;1:30&nbsp;PM</td>
	<td>TS-1293</td>
	<td><a href="#TS-1293">Best Practices for Building Optimized Wireless Solutions for Web Services</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;2:45&nbsp;PM</td>
	<td>TS-4589</td>
	<td><a href="#TS-4589">Good Morning,&nbsp;Buenos Dias,&nbsp;Dobry Den: Mobile Internationalization in Action</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;8:30&nbsp;PM</td>
	<td>BOF-2340</td>
	<td><a href="#BOF-2340">Creating NetBeans Plug-ins for Integration With JavaServer&trade; Faces,&nbsp;Hibernate,&nbsp;Spring,&nbsp;and EJB&trade; 3.0 Technology</a></td>
</tr>
<tr>
	<td>17-May-06,&nbsp;9:45&nbsp;PM</td>
	<td>TS-1387</td>
	<td><a href="#TS-4589">Twelve Reasons to Use NetBeans Software: Episode 2</a></td>
</tr>

<tr>
	<td>18-May-06,&nbsp;9:45&nbsp;AM</td>
	<td>TS-1278</td>
	<td><a href="#TS-1278">Creating and Deploying Custom Jackpot Queries and Transformers</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;1:30&nbsp;PM</td>
	<td>TS-1878</td>
	<td><a href="#TS-1878">Debugging Across Tiers: Advanced Techniques</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;2:45&nbsp;PM</td>
	<td>TS-1549</td>
	<td><a href="#TS-1549">Debugging and Profiling J2EE&trade; /Java&trade;EE 5 Platform-Based Applications</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;7:30&nbsp;PM</td>
	<td>BOF-2559</td>
	<td><a href="#BOF-2559">Discovery and Dependency Injection Patterns in Modular Architectures</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;7:30&nbsp;PM</td>
	<td>BOF-2807</td>
	<td><a href="#BOF-2807">Java&trade; Persistence API in the NetBeans IDE</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;8:30&nbsp;PM</td>
	<td>BOF-2417 </td>
	<td><a href="#BOF-2417">Memory Leaks in Java&trade;Technology-Based Applications: Different Tools for Different Types of Leaks</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;9:30&nbsp;PM</td>
	<td>BOF-2835</td>
	<td><a href="#BOF-2835">Creating an IDE for your favorite web framework</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;9:30&nbsp;PM</td>
	<td>BOF-2461</td>
	<td><a href="#BOF-2461">Use the Tools to Generate Mobile Business!</a></td>
</tr>
<tr>
	<td>18-May-06,&nbsp;10:30&nbsp;PM</td>
	<td>BOF-2031</td>
	<td><a href="#BOF-2031 ">Experience Self-Organized and Ad Hoc Collaborative Development With the NetBeans IDE</a></td>
</tr>
</table>

<br/>

<h2>Technical Sessions &mdash; NetBeans community</h2>
<p>More detailed list of Technical Sessions follows.</p>

<a name="TS-3361"><h2>TS-3361 Java EE 5 Platform: Even Easier With Tools</h2>
<p>
<b>Date &amp; Time:</b> 16-May-06,&nbsp;5:45&nbsp;PM <br/>
<b>Speakers:</b> Pavel Buzek - Sun Microsystems
<br/><b>Description:</b><br/>
<img src="../../../../images_www/javaone/nb_day/IMG_5680.jpg" align="right" width="260">
In the past,&nbsp;the tools for Java&trade;Platform,&nbsp;Enterprise Edition (Java EE) mainly tried to hide the complexity of APIs. They tried to manage the boilerplate code in various Java classes and XML descriptors,&nbsp;through either templates and code synchronization,&nbsp;as in the NetBeans&trade;5.0 IDE or IntelliJ IDEA,&nbsp;or code generation,&nbsp;such as various tools based on XDoclet.


<br/>
This session gives you a quick overview of the main Java EE 5 platform features that scratch some developers' itches. The main theme of the Java EE 5 platform is ease of use. Do developers still need any help from tools? The presentation shows the tasks for which a good tool can help the developer be much more productive. It focuses on object-relational mapping,&nbsp;web services,&nbsp;and web application development.
<br/>
In the area of Enterprise JavaBeans&trade;(EJB&trade;) technology and object-relational mapping,&nbsp;the new standards coming in the Java EE 5 platform combine the best features of successful open source and commercial frameworks (such as Oracle TopLink or Hibernate) and give developers a unified API for writing portable code. Object-relational mappings can be used in the Java Platform,&nbsp;Standard Edition (Java SE),&nbsp;web applications,&nbsp;or the EJB architecture. The session includes demos of various tools that help define object-relational mappings in applications ranging from quick prototypes to large applications working with existing large-scale schemas.
<br/>
The number of standards and technologies related to web services can be overwhelming. Some of the complexity of dealing with XML configuration files is gone,&nbsp;and web services can be fully configured by annotations in Java technology code. The presentation shows how the tool can help focus on the business logic performed by the web service as well as other aspects,&nbsp;including security,&nbsp;reliability,&nbsp;performance,&nbsp;and interoperability.
</p>

<a name="TS-4255"><h2>TS-4255 MHP/OCAP iTV Applications In a Nutshell</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;11:00&nbsp;AM<br/>
<b>Speakers:</b> Cedric Monnier - NDS
<br/><b>Description:</b><br/>
This tutorial aims to explain how to develop interactive TV applications compliant with MHP or OCAP standards. It includes a lot of source examples and is illustrated by use of a set-top-box simulator plugged into the NetBeans&trade; IDE or Eclipse environment. It concludes with a list of tips for compelling development.
</p>

<a name="TS-4916"><h2>TS-4916 Creating Professional Swing UIs Using Matisse GUI Builder</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;12:15&nbsp;PM<br/>
<b>Speakers:</b> Scott Violet,&nbsp;Tomas Pavek,&nbsp;and Jan Stola - Sun Microsystems
<br/><b>Description:</b><br/>
The NetBeans 5.0 IDE introduced a next-generation GUI builder tool that radically simplifies layout design of Swing based-GUIs. It has never been easier to design professional UIs that can run on various platforms,&nbsp;be translated to different languages,&nbsp;look good,&nbsp;and behave consistently. All that without the usual need of fighting with layout managers. In this presentation,&nbsp;Matisse developers take you through a tour of the GUI builder,&nbsp;demoing and explaining main features,&nbsp;and focusing on how to solve typical UI design problems. The session presents various tips and tricks for layout design and effective use of the Swing in a GUI builder. See how to internationalize the UI,&nbsp;how to use custom components,&nbsp;and more. Learn from the experts about the main principles of cross-platform UI design,&nbsp;UI guidelines in layout,&nbsp;comparison of various approaches and design styles,&nbsp;and typical mistakes to avoid. Last but not least,&nbsp;the Matisse authors reveal some new things being prepared for the next release and ideas about the future of the GUI builders field.
<br/>
Overall,&nbsp;the presentation provides a solid theoretical and practical basis for anyone who needs to quickly create a good-looking Swing UI that just works.
<br/>
The session requires a basic level of prior experience in programming Swing GUIs and using GUI builder tools.
</p>

<a name="TS-1293"><h2>TS-1293 Best Practices for Building Optimized Wireless Solutions for Web Services</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;1:30&nbsp;PM<br/>
<b>Speakers:</b> Michael Shenfield - Research in Motion Limited
<br/><b>Description:</b><br/>
With web services rapidly expanding into the wireless space,&nbsp;it is important to recognize the differences between wireless and wired clients. It is as rare to see web services specially designed for wireless use as it is to find a wireless execution environment or applications optimized for web services. This session highlights the challenges faced when building web services to suit wireless integration and offers practical recommendations for meeting these challenges.
<br/>
The session describes the principles for building an optimized Java&trade; Platform,&nbsp;Micro Edition (Java ME) container framework for hosting web service client applications and shows how the APIs defined by JSR 172 and the upcoming JSR 279 and 280 APIs fit in this model. Next,&nbsp;the session looks at some of the common patterns for designing wireless applications and shows how these patterns can be applied for applications using web services. Then the discussion shifts from wireless devices to web services,&nbsp;presenting techniques for building wireless-friendly web services or designing aggregator services to suit wireless constraints. The session shows the benefits of using asynchronous web services and presents approaches for building notification-based solutions with synchronous web services. It ends with a demo showing these techniques put to work in a practical example.
<br/>
This presentation distills more than three years of web services platform design experience of the Advanced Technologies Group at RIM.
<br/>
The participants are expected to have basic knowledge of web services and the Java ME platform.
</p>

<a name="TS-4589"><h2>TS-4589 Good Morning,&nbsp;Buenos Dias,&nbsp;Dobry Den: Mobile Internationalization in Action</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;2:45&nbsp;PM<br/>
<b>Speakers:</b> Tomas Brandalik,&nbsp;Martin Brehovsky,&nbsp;David Pulkrabek - Sun Microsystems
<br/><b>Description:</b><br/>
Globalization and the need to leverage assets make producing localized applications an important part of the product lifecycle. Although internationalization for applications based on Java&trade; Platform,&nbsp;Standard Edition (Java SE) and Java Platform,&nbsp;Enterprise Edition (Java EE) is a well-known process,&nbsp;with a lot of support from various tools,&nbsp;the situation in Java Platform,&nbsp;Micro Edition (Java ME)/MIDP was unsatisfactory for a long time,&nbsp;because there was no standard solution for solving internationalization issues. With the introduction of JSR 238 (Mobile Internationalization API),&nbsp;Java ME platform-based application developers can easily create truly internationalized applications.
<br/>
This session shows how to develop localized MIDP applications by using JSR 238 in the NetBeans&trade; IDE and Wireless Toolkit. It covers both the Java technology code and the tools for helping create localized applications. It also discusses the problems of creating several language distributions of an application and how to internationalize applications on devices without JSR 238.
</p>

<a name="TS-1387"><h2>TS-1387 Twelve Reasons to Use NetBeans Software: Episode 2</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;9:45&nbsp;PM<br/>
<b>Speakers:</b> Charles Ditzel and Inyoung Cho - Sun Microsystems
<br/><b>Description:</b><br/>
The advances in NetBeans&trade; software have not gone unnoticed by developers--the NetBeans software developer base has tripled within a year. The arrival of the NetBeans IDE 5.0 development environment offers a wealth of new and innovative features unavailable from other IDEs. In less than a year,&nbsp;NetBeans software has added sophisticated features that make developers and teams of developers considerably more productive. Last year's advances in areas such as GUI development (Matisse),&nbsp;developer collaboration,&nbsp;visual mobile development,&nbsp;new refactorings,&nbsp;and profiling have been considerably further advanced with the latest releases. This presentation focuses on and demonstrates some key reasons why developers are looking at NetBeans software. It also demonstrates and discusses the latest features.
</p>

<a name="TS-1278"><h2>TS-1278 Creating and Deploying Custom Jackpot Queries and Transformers</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;9:45&nbsp;AM<br/>
<b>Speakers:</b> Tom Ball - Sun Microsystems
<br/><b>Description:</b><br/>
The Jackpot project adds reengineering capabilities to the NetBeans&trade; integrated development environment. In this session,&nbsp;you learn how to create custom queries to find problem areas in your code,&nbsp;plus transformers to quickly and safely fix those problems. The presentation describes the Jackpot rules language and the NetBeans IDE support for editing and executing your rules files. It also discusses how to add your own Jackpot commands to the IDE menu and how to deploy them throughout your development organization.
</p>

<a name="TS-1878"><h2>TS-1878 Debugging Across Tiers: Advanced Techniques</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;1:30&nbsp;PM<br/>
<b>Speakers:</b> Petr Suchomel,&nbsp;Martin Entlicher,&nbsp;Roman Ondruska - Sun Microsystems
<br/><b>Description:</b><br/>
This session presents a variety of techniques and useful practices for developing and debugging a cross-tier,&nbsp;multilevel system based on the Java&trade; Platform,&nbsp;Enterprise Edition; Java Platform,&nbsp;Standard Edition; and Java Platform,&nbsp;Micro Edition standards. The presentation guides you through the development process of a complex multitier application,&nbsp;with special focus on using modern IDE tools for identifying and fixing problems in different tiers while using efficient techniques such as multisession client-server debugging and on-device debugging (hit a breakpoint in your pocket!). It demonstrates all typical scenarios in NetBeans&trade; IDE 5.0.
<br/>
The session requires an intermediate level of prior experience with Java enterprise technology systems and Java IDEs.
</p>

<a name="TS-1549"><h2>TS-1549 Debugging and Profiling J2EE&trade; /Java&trade; EE 5 Platform-Based Applicationss
</h2><p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;2:45&nbsp;PM<br/>
<b>Speakers:</b> Ludo Champenois - Sun Microsystems
<br/><b>Description:</b><br/>
Now it's easier than ever to create and deploy Java&trade; 2 Platform,&nbsp;Enterprise Edition (J2EE&trade;) and Java Platform,&nbsp;Enterprise Edition (Java EE) 5 applications to your favorite application server (JBoss,&nbsp;BEA,&nbsp;Sun Java System Application Server,&nbsp;GlassFishSM project). But what happens when things go wrong? Is it your business code or the J2EE technology container that is buggy? When your application response time is not good enough or consumes too many resources,&nbsp;how can you detect and fix this? This session presents the different strategies and tools available for modern developers:
<ul>
<li>Application server monitoring framework</li>
<li>Admin Console Log viewer and analyzer</li>
<li>Admin Console Call Flow tool</li>
<li>Web services management tool</li>
<li>J2EE/Java EE 5 Verifier tool (static and dynamic verification)</li>
<li>Debugging J2EE applications with the NetBeans IDE - one click to debug</li>
<li>Debugging Database Persistence (JSR 200) applications with the NetBeans IDE</li>
<li>Debugger features that help J2EE programming language debugging</li>
<li>Profiling J2EE applications with the NetBeansJava&trade; IDE Profiler - one click to profile</li>
<li>Java technology Blueprints Solutions Catalog and Patterns,&nbsp;to start from clean code</li>
</ul>
</p>




<br/>
<h2>Birds of a Feather &mdash; NetBeans community</h2>
<p>More detailed list of Birds of a Feather follows.</p>
<a name="BOF-2496"><h2>BOF-2496 Building Development Tools on Top of the NetBeans&trade; IDE</h2>
<p>
<b>Date &amp; Time:</b> 16-May-06,&nbsp;9:30&nbsp;PM<br/>
<b>Speakers:</b> Tomas Brandalik,&nbsp;Richard Gregor,&nbsp;David Pulkrabek - Sun Microsystems
<br/><b>Description:</b><br/>
The presenters in this session used the NetBeans&trade; IDE as the basis for building a new development environment for the Java&trade; Platform,&nbsp;Micro Edition (Java ME) CDC Platform. They share their experiences with the NetBeans platform in and demonstrate a real application built on top of the NetBeans 6 platform,&nbsp;which is used for developing CDC applications,&nbsp;with all its features that were developed on top of the NetBeans platform.
</p>

<a name="BOF-0678"><h2>BOF-0678 Meet the "Java Posse"</h2>
<p>
<b>Date &amp; Time:</b> 16-May-06,&nbsp;10:30&nbsp;PM<br/>
<b>Speakers:</b> Tor Norbye - Sun Microsystems
<br/><b>Description:</b><br/>
The "Java&trade; Posse" is a weekly podcast with news and interviews related to the Java world. In this Birds of a Feather session,&nbsp;you meet the three hosts of the show as they record a situation report from the JavaOneSM conference.
</p>

<a name="BOF-2340"><h2>BOF-2340 Creating NetBeans Plug-ins for Integration With JavaServer&trade; Faces,&nbsp;Hibernate,&nbsp;Spring,&nbsp;and EJB&trade; 3.0 Technology</h2>
<p>
<b>Date &amp; Time:</b> 17-May-06,&nbsp;8:30&nbsp;PM<br/>
<b>Speakers:</b> Edgar A Silva - Summa Technologies
<br/><b>Description:</b><br/>
This session illustrates how to develop plug-ins for the NetBeans™ IDE, using several scenarios. In addition, it presents several strategies and techniques for developing NetBeans plug-ins. For example, it shows how the speaker developed a NetBeans plug-in called GreenBox that integrates the Java™ Platform, Enterprise Edition (Java EE) platform with Hibernate and Spring. The end result is a highly productive development environment. Also included in the presentation is a discussion of how GreenBox will integrate with the Java EE 5 platform.
</p>

<a name="BOF-2559"><h2>BOF-2559 Discovery and Dependency Injection Patterns in Modular Architectures</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;7:30&nbsp;PM<br/>
<b>Speakers:</b> Tim Boudreau - Sun Microsystems
<br/><b>Description:</b><br/>
Modular applications have unique requirements for both object discovery and dependency management. With seven years to refine our approach to this difficult problem,&nbsp;the NetBeans&trade; IDE offers some unique insights into lookup patterns in modular applications and how to do such patterns in a type-safe way,&nbsp;both for the case of looking up global services and the case of exposing ad hoc capabilities on existing objects. This BOF session discusses the problem space,&nbsp;how lookup patterns relate to dependency management,&nbsp;and how NetBeans technology manages both at the same time via the Lookup library,&nbsp;which can be used by any client- or server-side Java&trade; application.
</p>

<a name="BOF-2807"><h2>BOF-2807 Java&trade; Persistence API in the NetBeans&trade; IDE</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;7:30&nbsp;PM<br/>
<b>Speakers:</b> Martin Adamek - Sun Microsystems
<br/><b>Description:</b><br/>
Object-relational mapping in the new EJB&trade; 3.0 specification focuses on simplification and developer productivity in the persistence area. This new style of access to databases has an impact on the architecture of many parts of an application. Important news is that the spec also covers out-of-the-container environments such as Swing applications and simple Web applications. All of these changes also have an impact on tools. Although EJB 3.0 will undoubtedly make the developer's life simpler,&nbsp;there are still areas where a good IDE will be essential.<br/>
A good tool needs to provide all of the following:
<ul>
<li>Adding persistence support to any type of project environment.</li>
<li>Specifying a provider and its properties.</li>
<li>Creation of entity beans.</li>
<li>Mapping to databases.</li>
<li>Managing relationships between entities.</li>
<li>Using entity beans from all types of components (managed and nonmanaged environments).</li>
<li>Deploying,&nbsp;testing,&nbsp;debugging,&nbsp;and profiling applications.</li>
</ul>
There are some typical situations in which the developer needs some help; otherwise,&nbsp;a lot of time must be spent with web searches and unsuccessful attempts to get things working. These areas typically are the creation of entity beans from databases,&nbsp;the relationships between entities,&nbsp;and usage of EntityManager from all around the application (where access to its instance and session handling is completely different in managed and nonmanaged environments). Another big source of developers' problems is queries,&nbsp;where syntax highlighting,&nbsp;code completion,&nbsp;and hints can help a lot. There's another new feature --overriding annotations with deployment descriptors - with which developers can get lost and the IDE can make things clear easily.
<br/>
This session discusses how the NetBeans&trade; IDE brings all of this to the everyday development life cycle and adds superb features such as zero-configuration development and deployment with the Java&trade; Platform,&nbsp;Enterprise Edition (Java EE) 5 platform reference implementation; application server GlassFish project; and Java BluePrints Solutions Catalog,&nbsp;offering patterns and best practices with sample applications in a few clicks.
<br/>
The BOF I will come through Java Persistence API features in the NetBeans IDE,&nbsp;major part of presentation will show their usage on the samples and finally I will try to answer questions from attendees.
</p>

<a name="BOF-2417"><h2>BOF-2417 Memory Leaks in Java&trade; Technology-Based Applications: Different Tools for Different Types of Leaks</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;8:30&nbsp;PM<br/>
<b>Speakers:</b> Gregg Sporar - Sun Microsystems
<br/><b>Description:</b><br/>
Not all memory leaks are the same. Some eat away at memory slowly over time. Others grab huge chunks of memory all once. What is common for most of them is that they ultimately cause the virtual machine's heap to run out of space. A large variety of tools provides a high-level view of a Java&trade; application's memory usage,&nbsp;but not all of them are appropriate for doing the detailed analysis needed to find the cause of a memory leak. Depending on the type of memory leak,&nbsp;some tools are more appropriate than others. This BOF session examines some of the tools and techniques available and uses example memory leaks in real-world Java applications.
<br/>
The presentation shows how to track down a memory leak where multiple object instances of the same class are created over time,&nbsp;some of which are the source of a leak and others of which are not. It then examines how to debug a memory leak where only a single object instance is the source of the problem. Each of these examples involves a brief examination of the source code and a demonstration using a monitoring/profiling tool.
<br/>
Attendees are expected to understand the basics of virtual machine garbage collection and the conditions that lead to a memory leak in a Java application. After the demonstrations,&nbsp;the presenters would like to have an open discussion about memory leaks in real-world applications,&nbsp;so if you have experience in using specific tools and techniques for solving these sorts of problems,&nbsp;please attend and share your story with others.
<br/>
Attendees can expect to see brief demos of memory profiling and monitoring tools. The session includes two case studies,&nbsp;so two different types of memory leaks can be described. Sample debugging sessions illustrate the different types of tools that are appropriate for different types of memory leaks.
</p>

<a name="BOF-2835"><h2>BOF-2835 Creating an IDE for your favorite web framework</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;9:30&nbsp;PM<br/>
<b>Speakers:</b> Geertjan Wielenga - Sun Microsystems
<br/><b>Description:</b><br/>
Numerous web frameworks are available. And there are many IDEs. An IDE can simplify and streamline the process of creating an application that uses a certain web framework,&nbsp;and it can provide wizards; templates; samples; and a variety of editor features,&nbsp;such as syntax highlighting,&nbsp;code completion,&nbsp;and hyperlinking for a web framework. For example,&nbsp;an IDE's editor can provide syntax highlighting to make distinctions between identifiers in the code used by a web framework. But not all IDEs support all web frameworks. When no IDE provides specific support for a web framework,&nbsp;the developer isn't fully supported and time to market is affected.
<br/>
This presentation focuses on how an IDE (or a plug-in for the NetBeans&trade; IDE) can be created to support whatever web framework the developer feels most comfortable with. It describes the concepts and APIs provided by the module development support in the NetBeans 5.0 IDE. The topics covered enable the NetBeans 5.0 IDE to be enhanced and rebranded so that an IDE is created with the following support for a new web framework:
<br/>
<ul>
<li>Wizards and templates for the creation of projects <li>Wizards and templates for the creation of files <li>New actions,&nbsp;menu items,&nbsp;toolbar buttons,&nbsp;and keyboard shortcuts <li>Syntax highlighting,&nbsp;code completion,&nbsp;and hyperlinks in the editor <li>New code snippets that can be dragged and dropped from the Component Palette <li>Framework-specific refactoring support <li>Project samples <li>Libraries and Javadoc&trade; tool <li>JavaHelp&trade; tool
</ul>
At the end,&nbsp;a NetBeans software plug-in and a standalone IDE will be created,&nbsp;with its own splash screen and executable.
</p>

<a name="BOF-2461"><h2>BOF-2461 Use the Tools to Generate Mobile Business!</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;9:30&nbsp;PM<br/>
<b>Speakers:</b> Jean-Yves Bitterlich - BenQ Mobile GmbH & Co OHG,&nbsp;David Pulkrabek - Sun Microsystems
<br/><b>Description:</b><br/>
With the rapid increase of mobile services and wireless applications,&nbsp;mobile operators and third-party service providers have been introducing more and more chargeable services. To provide simple access to these chargeable services from MIDlets,&nbsp;JSR 229 (Payment API) has been integrated into Sun Java&trade; Wireless Toolkit 2.3.
<br/>
Currently there are two ways to purchase a service,&nbsp;goods,&nbsp;and the like: by sending a premium-priced SMS and by using a credit card. Each of these payment methods uses its own special payment adapter,&nbsp;called according to the payment method: Premium-Priced SMS Adapter or Credit Card Adapter,&nbsp;respectively. The Credit Card Adapter is intended only for testing purposes and is capable of accepting three types of credit cards: Visa,&nbsp;MasterCard,&nbsp;and&nbsp;AMerican Express. For purposes of testing the introduced payment adapters,&nbsp;a simple Payment Service Provider Server has been implemented and integrated in Sun Java Wireless Toolkit 2.3.
<br/>
This demonstration raises ideas for new business. It uses a simplified brick game to demonstrate integration of chargable services to the Sun Java Wireless Toolkit. After the demonstration,&nbsp;the same application is run on a real phone.
</p>

<a name="BOF-2031"><h2>BOF-2031 Experience Self-Organized and Ad Hoc Collaborative Development With the NetBeans&trade; IDE</h2>
<p>
<b>Date &amp; Time:</b> 18-May-06,&nbsp;10:30&nbsp;PM<br/>
<b>Speakers:</b> James Todd - Sun Microsystems
<br/><b>Description:</b><br/>
Software developers have a wide array of collaboration tools to choose from when considering the best and most efficient means of interacting with colleagues. The choices narrow dramatically for composite applications that consist of core functionality coupled with ready-to-use collaboration features. Well,&nbsp;that time has changed,&nbsp;with the advent of the very popular Developer Collaboration features introduced in NetBeans&trade; IDE 4.1 that enable you to intuitively interact with colleagues,&nbsp;providing rich content IM capabilities,&nbsp;file and project sharing,&nbsp;collaborative editing,&nbsp;and remote compilation,&nbsp;all from within the the context of the NetBeans IDE.
<br/>
With the self-organizing and ad hoc JXTA&trade; technology Collaboration Provider for the NetBeans IDE,&nbsp;provided as a plug-in module,&nbsp;developers can now experience ad hoc collaborative scenarios that require few or no external resources. This can be significant for teams that may work within corporate networks that are isolated by design. Conversely,&nbsp;individuals who find themselves distributed across the globe can leverage this feature as well without requiring predeployed networking infrastructure.
<br/>
Further,&nbsp;JXTA technology provides a means whereby "resources from the edge," all peers being equal,&nbsp;can readily come into play and be offered as discoverable and invokable services,&nbsp;including voice,&nbsp;video,&nbsp;compute factory,&nbsp;and job dispatch over end-to-end secure communications channels.
</p>


</body>
</html>
