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

<body>

<h1>NetBeans<sup><small>TM</small></sup> at JavaOne<small><sup>SM</sup></small></h1>

<P>JavaOne 2005 took place at the Moscone Convention Center in San
Francisco, California between June 27 and 30. The full schedule of sessions and BOFs is included below.

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

<P><h2>NetBeans Software Day</h2>
On Sunday afternoon, June 26, the day before the 2005 JavaOne Conference, the
NetBeans Software Team hosted a FREE companion event at The Argent Hotel
near Moscone Center. James Gosling, the father of Java&trade;, and other Java luminaries discussed
NetBeans and the future of Java developer tools.

<p>
  <ul>
    <li><a href="report.html">A NetBeans Day report from Patrick Keegan</a></li>
    <li><a href="https://netbeans.org/servlets/NewsItemView?newsItemID=667">Highlights of the standing room only event</a></li>
    <li><a href="nb-day.html">NetBeans Day schedule and info</a></li>
  </ul>

<P><h2>JavaOne Sessions and BOFs</h2>

<ul>
  <li><a href="#TS-2670">TS-2670 Twelve Reasons to Use NetBeans</a></li>
  <li><a href="#TS-1429">TS-1429 Developing Mobile Applications That Utilize Web Services: A Sprint PCS Case Study</a></li>
  <li><a href="#TS-7143">TS-7143 Project Jackpot: A New Java&trade; Technology for Source Transformation</a></li>
  <li><a href="#TS-7330">TS-7330 Profiling Complex Applications Made Simple: How to Diagnose Performance Problems With Integrated NetBeans&trade; Profiler (Project JFluid)</a></li>
  <li><a href="#TS-7725">TS-7725 J2EE&trade; Ease of Development: Platform Specification and Tools Perspective</a></li>
  <li><a href="#BOF-9195">BOF-9195 INSANE: Java Technology-Based Application Heap Postmortem Analysis in Practice</a></li>
  <li><a href="#BOF-9581">BOF-9581 Using Tools to Learn J2EE Technologies</a></li>
  <li><a href="#TS-6116">TS-6116 Write Once, Plug Everywhere: Extending the Major Java IDEs - NetBeans, Eclipse, and JBuilder</a></li>
  <li><a href="#TS-7302">TS-7302 Coding Across Continents: Technologies for Remote, Real-Time, Collaborative Software Development</a></li>
  <li><a href="#TS-2845">TS-2845 NetBeans Mobility Pack: Living up to Developer Expectations</a></li>
  <li><a href="#TS-4181">TS-4181 How to Build Rich Desktop Client Applications Using NB Platform 4.0</a></li>
  <li><a href="#BOF-9156">BOF-9156 GUI Design in a Natural Way: Layout Manager Using the New NetBeans</a></li>
  <li><a href="#BOF-9288">BOF-9288 Interactive Ant-Based Development Using the NetBeans IDE</a></li>
  <li><a href="#BOF-9596">BOF-9596 Productive Development of Web Apps With the NetBeans IDE</a></li>
  <li><a href="#BOF-9184">BOF-9184 How to Write APIs That Will Stand the Test of Time</a></li>
</ul>


<P><a name="TS-2670"></a><h2>TS-2670 Twelve Reasons to Use NetBeans</h2>
<b>Date &amp; Time :</b> 27-JUN-05, 3:30 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Charles Ditzel, Inyoung Cho and Tim Cramer - Sun Microsystems
<BR><b>Description :</b>
<P>
The NetBeans&trade; interactive development environment offers a wealth of
features today that a short time ago it lacked. Today many developers have put
down some of their existing tools and taken to using the NetBeans IDE because a
number of new features offer developers compelling reasons to use it. This talk
focuses on some key reasons why developers should consider using the NetBeans
IDE.

<P><a name="TS-1429"></a><h2>TS-1429 Developing Mobile Applications That Utilize Web Services: A Sprint PCS Case Study</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 11:00 AM
<BR><b>Location :</b>  Esplan 301
<BR><b>Speakers :</b> Sigal Duek - Sun Microsystems, Eric Wolter - Sprint PCS, Ashim Prasad - Sprint PCS
<BR><b>Description :</b>

<P>This technical case study reviews an architecture that enables existing Java&trade;
technology-powered handsets to consume web services. As a result of a
collaboration between Sprint PCS and Sun Microsystems, this case study is aimed
at reducing the life cycle of developing end-to-end mobile applications and
providing developers the flexibility to modify their application logic on the
web services layer without re-deploying the client application. This project was
implemented using the NetBeans&trade; 4.1 IDE with Mobility Pack and Sprint’s Business
Mobility Framework and consists of three tiers:

<ol>
  <li>Client device based on Java technology with CLDC 1.0/1.1 and MIDP 1.0/2.0
  <li>Middle tier deployed on a J2EE&trade; technology-based application server
  <li>Server backend consisting of commercially available SOAP/XML web services
</ol>

<P>You gain insight on how to develop and connect mobile applications to web
services by utilizing the latest NetBeans IDE with Mobility Pack. You also hear
from Sprint on possible use cases of this architecture based on Sprint's
Business Mobility Framework, as well as its future plans to support mobile web
services.

<P><a name="TS-7143"></a><h2>TS-7143 Project Jackpot: A New Java&trade; Technology for Source Transformation</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 1:30 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Tom Ball - Sun Microsystems
<BR><b>Description :</b>
<P>
Project Jackpot is the code name for a technology that enables developers to make sweeping source file changes safely by combining the best of refactoring and rules engines. Jackpot works with the javac compiler's front-end to apply rules and transformations that preserve a program's behavior then updates the program's source files with the minimum set of changes. We discuss what Jackpot is detail how it works and describe how this technology may be rolled into future products. This is an advanced talk for those interested in refactoring Java&trade; technology re-engineering and compiler-related topics.

<P><a name="TS-7330"></a><h2>TS-7330 Profiling Complex Applications Made Simple: How to Diagnose Performance Problems With Integrated NetBeans&trade; Profiler (Project JFluid)</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 2:45 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Ian Formanek, Gregg Sporar - Sun Microsystems
<BR><b>Description :</b>
<P>
Detailed diagnostics of performance problems in large and complex Java&trade; technology-based applications that need it most remains a challenging and time-consuming task. Thus, profiling, unlike debugging and testing, is still a mystery to many developers and is treated as something outside the scope of normal development. The result is delayed or poorly performing applications. This unfortunate situation can be explained partly by the inherent complexity of profiling, and partly by the lack of cheap, free, and powerful tools.

<P>In versions 4.0 and 4.1, the NetBeans&trade; IDE has made big steps toward simplifying development, deployment, and debugging of Web applications and programs based on Java 2 Platform, Enterprise Edition (J2EE&trade; platform). Now, the freely available integrated NetBeans Profiler, also known as Project JFluid (currently in Beta with the first official release planned for Spring 2005) aims at making profiling a natural part of the development process as well.

<P>To address the problems of inherent complexity and the infamous performance overhead of profiling, the NetBeans Profiler offers a number of novel technical solutions pioneered in its base technology, the Sun Labs JFluid project. They are especially relevant for Web and J2EE technology-based applications that consist of multiple software layers (user code, AS, Java technology libraries) and usually perform same actions repetitively. Equally important, tight integration with the NetBeans IDE allows the Profiler to take advantage of the inherent knowledge of the application that the IDE already has. More specifically, the NetBeans Profiler allows developers to:

<ul>
<li>Measure CPU performance of applications with low overhead, yet gather enough useful information through selective call tree profiling
<li>Profile object allocations and lifecycle with small overhead using semi-statistical object lifecycle tracking approach
<li>Diagnose memory leaks using the number of "surviving generations" metrics that pinpoints sources of growing leaks avoiding costly heap snapshot dumps and compares
<li>Avoid or greatly simplify setup for profilingmost of it has already been done as a part of project setup in the IDE; the rest can be easily done based on the Project Type and other IDE settings
</ul>

<P>In this session we explain the innovative features of the JFluid technology and demonstrate how to use the NetBeans Profiler to easily profile a Web or J2EE technology-based application developed in the NetBeans IDE. We also give some hints on results interpretation and how to avoid the most common pitfalls.

<P><a name="TS-7725"></a><h2>TS-7725 J2EE&trade; Ease of Development: Platform Specification and Tools Perspective</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 4:00 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Ludovic Champenois - Sun Microsystems
<BR><b>Description :</b>
<P>
One of the main themes for Java&trade; 2 Platform, Enterprise Edition  (J2EE&trade; platform) 5.0 (JSR-244) is ease of development (EOD). New specifications (metadata, annotations, better default values and more) are under consideration. At the same time, Java technology tools are evolving rapidly (Eclipse, NetBeans&trade;, IntelliJ) and introducing features that try to hide the complexity of the plumbing aspects of the J2EE platform. The combination of the two (platform and tools) will dramatically change the way J2EE technology developers work and help them to concentrate on their core competencies: business logic and declarative interaction with the J2EE technology containers.

<P>This session covers:

<ul>
<li>The current J2EE platform 5.0 ease of development features, with an IDE user perspective
<li>Web Services Metadata (JSR-181), simplifying model for web services programming
<li>Enterprise JavaBeans&trade; (EJB&trade;) technology 3.0 (JSR-220), greatly improving the EJB architecture by reducing its complexity from the developer's point of view
<li>JavaServer Pages&trade; technology 2.1 (JSR-245), improving alignment with JavaServer&trade; Faces technology and enhanced ease of development
<li>Some current solutions exposed by some IDEs to help the developer today using J2EE platform 1.4. (NetBeans&trade; software 4.1 and possibly another IDE will be used as an example)
<li>How future versions of IDEs can use the benefits of the J2EE platform 5.0 to expand further the ease of development and debugging for J2EE technology-based applications
<li>J2EE technology common developer tasks (Call an Enterprise Bean, Call a Web Service Operation, Use a Database, Send a Mail, use Java Message Service)
<li>Zero Configuration Tools that can help hide entirely the Deployment Descriptors (For example, NetBeans software 4.1 and it's current J2EE platform 1.4 support)
<li>How a J2EE platform 5.0 IDE could use the annotations to simplify the J2EE technology developer tasks
</ul>

<P><a name="BOF-9195"></a><h2>BOF-9195 INSANE: Java Technology-Based Application Heap Postmortem Analysis in Practice</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 8:30 PM
<BR><b>Location :</b>  Pacific J Marriott
<BR><b>Speaker :</b> Radim Kubacki, Antonin Nebuzelsky - Sun Microsystems
<BR><b>Description :</b>
<P> Understanding specifics of memory management in Java&trade; technology is an important prerequisite for writing well-performing applications. Developers should especially pay attention to the number size and life cycle of objects instantiated during application runtime. This in-depth talk has two parts. It describes memory requirements of Java technology-based applications and explains a method for Java technology heap analysis. The first part describes memory footprint of a Java technology-based application its relationship to the underlying OS memory management and what implications this has for the application runtime behavior. This includes discussion of impact on minimizing and restoring application GUI and virtual page thrashing. Sharing various parts of a Java technology-based application with other processes running on the same machine are covered and special attention is paid to class data sharing among Java Virtual Machine (JVM&trade; machine) instances. While memory requirements of a JVM machine are hard to influence the content of the Java technology heap and its size are under developer's control. The second part of the presentation is dedicated to heap analysis and problems the analysis can help identify. Enabling tools for the analysis are introduced with a special focus on INSANE a unique postmortem memory analysis tool. INSANE allows developers to browse the heap content and search for suspicious patterns and memory leaks. You'll be able to use the tool to do the analysis and optimize memory usage in your applications

<P><a name="BOF-9581"></a><h2>BOF-9581 Using Tools to Learn J2EE Technologies</h2>
<b>Date &amp; Time :</b> 28-JUN-05, 9:30PM
<BR><b>Location :</b>  Golden Gate C1
<BR><b>Speaker :</b> Petr Jiricka, Trung Duc Tran - Sun Microsystems
<BR><b>Description :</b>
<P>
The main reason why developers usually start using advanced Java&trade; 2 Platform Enterprise Edition (J2EE&trade; platform) tools is because these tools make development more productive. Tools generate large pieces of complex scaffolding code suggest suitable class or method names perform refactorings across the whole codebase and automatically manage configuration and deployment information. But there is another important reason why many developers employ tools to help them do their jobs: With tools they can more easily and painlessly learn new complex technologies which would otherwise represent a significant barrier to entry. This session demonstrates how the latest NetBeans&trade; Integrated Development Environment helps both novice and seasoned developers with or without experience with tools better understand all the aspects of enterprise technologies in situations where they have traditionally relied on online tutorials printed books or classroom courses. From the syntax elements of JavaServer Pages&trade; (JSP&trade;) technology to the format of deployment descriptors from the enterprise application build and packaging process to command line interoperability from the usage of J2EE technology APIs to common design patterns in J2EE technology development this session discusses it all.

<P><a name="TS-6116"></a><h2>TS-6116 Write Once, Plug Everywhere: Extending the Major Java IDEs - NetBeans, Eclipse, and JBuilder</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 9:45 AM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Mark Howe - Borland; Bob Evans - Agitar Software
<BR><b>Description :</b>
<P>
Ever wanted to add cool functionality to your favorite IDE? Well why write a plug-in for just one IDE when you can write it for three IDEs? We show you how to write a plug-in that will run in NetBeans&trade; Eclipse and JBuilder IDEs. We focus on abstracting your plug-in's code and then writing adapters to each IDE's plug-in API. We highlight the differences in the IDEs that developers will need to address and give suggested solutions. Developers who attend this session will be able to make better decisions about building their plug-ins in a cross-IDE way.

<P><a name="TS-7302"></a><h2>TS-7302 Coding Across Continents: Technologies for Remote, Real-Time, Collaborative Software Development</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 12:15PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Todd Fast - Sun Microsystems
<BR><b>Description :</b>
<P>
Developing software in a distributed team although increasingly common remains a serious challenge. We can collaborate with each other online anytime using email instant messaging the Web newsgroups bulletin boards wikis and blogs but only within frustrating limits because these technologies do not specifically target nor completely meet the needs of software developers. Perhaps ironically the authors of these technologies are in desperate need of collaborative tools that work together easily and address their special advanced collaboration needs. We call this new domain developer collaboration and fortunately the time has come for collaboration tailored to the needs of software developers to finally make collaborative software development significantly easier regardless of the distance between team members. As pioneers on the developer collaboration frontier we present the main use cases for developer collaboration a vision for the future of developer collaboration and the work we've done to collaboration-enable the NetBeans&trade; IDE. We present a number of technologies developed at Sun that you can use to reach new levels of developer collaboration today: the technology-neutral MOXC ( Moxie ) collaboration messaging protocol running atop XMPP the CollabBeans API and the Collablet API. We also demonstrate using these technologies to build a new collablet for the NetBeans IDE.

<P><a name="TS-2845"></a><h2>TS-2845 NetBeans Mobility Pack: Living up to Developer Expectations</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 1:30 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Karel Herink, Matt Volpi - Sun Microsystems; Thomas Bailey - Sony Ericsson
<BR><b>Description :</b>
<P>
Developers are continuously being offered tools, SDKs, code, and documentation
to make the creation of applications for mobile devices easier than ever before.
One offer is the NetBeans&trade; IDE Mobility Pack: Is this just another IDE or
does it really live up to the hype?

<P>This session strips away the marketing hype and demonstrates how to create
mobile applications with the NetBeans IDE Mobility Pack, with a focus on
integration between the NetBeans IDE and the Sony Ericsson Java&trade; 2
Platform, Micro Edition (J2ME&trade;) SDK. We also include an in-depth look into
on-device debugging with a demonstration of the interaction between the NetBeans
IDE and a Sony Ericsson device during a live debugging session.

<P>Topics include:

<ul>
<li>Introduction to the NetBeans IDE Mobility Pack
<li>Tour of the IDE
<li>Project Wizard
<li>J2ME Productivity Tools
<li>Extending the IDE
<li>Integrating Sony Ericsson SDK
<li>Managing device fragmentation
<li>On-device debugging
<li>Benefits of on-device debugging over emulator debugging
<li>On-device debugging from the IDE perspective
<li>Demonstrating of on-device debugging
</ul>

<P><a name="TS-4181"></a><h2>TS-4181 How to Build Rich Desktop Client Applications Using NB Platform 4.0</h2>
<b>Date &amp; Time :</b> 29-JUN-05; 4:00 PM
<BR><b>Location :</b>  Esplanade 304/306 Moscone
<BR><b>Speaker :</b> Jaroslav Tulach - Sun Microsystems; Rich Unger - Nuance Communications
<BR><b>Description :</b>
<P>
Any desktop application has to solve a similar set of problems: usability look
and feel settings management and presentation support for drag-and-drop UI
design localization management of menus and toolbars wizards help system
integration and much more. Developing such an application from scratch can waste
many years solving problems that every other desktop application has also had to
solve. It is especially wasteful when a free open standards-based solution is
available. This talk is a continuation of the successful 2004 JavaOne<small><sup>SM</sup></small>
conference session <I>TS-1694: Desktop Application Architecture I: Using the
NetBeans&trade; Platform Application Framework to Create a Rich Client
Application</I>. It describes the changes and improvements that have been achieved
during the last year and gives a live line-by-line demonstration of how to build
a sample application (an RSS feed browser) on the NetBeans Platform 4.0. By
showing the results together with steps on how to reach them the session
promises to be interesting for newcomers as well as NetBeans platform ISVs
looking to ensure they do the right things in the right way.

<P><a name="BOF-9156"></a><h2>BOF-9156 GUI Design in a Natural Way: Layout Manager Using the New NetBeans</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 7:30 PM
<BR><b>Location :</b>  Golden Gate C1 Marriott
<BR><b>Speaker :</b> Tomas Pavek, Dusan Pavlica - Sun Microsystems
<BR><b>Description :</b>
<P>
To date designing professional cross-platform GUIs with Java&trade; Foundation Classes/Swing technology (JFC/Swing) has been tedious and error prone. Developers are forced to write cryptic code for an inherently visual task. This has resulted in numerous less than appealing Java technology GUIs as well as unmaintainable code. The new version of the NetBeans&trade; software GUI builder focuses directly on this problemmaking the layout design of visual forms easy for everyone without the need to know JFC/Swing layout principles. The GUI builder exposes simple layout rules that the user is able to understand and use quickly. It lets the user lay out components freely providing assistance for optimal spacing between components and easy aligning and it infers resizing behavior and more. In the background it produces a layout implementation using layout managers and other JFC/Swing constructs. Besides seeing the new tool in action you'll also learn what it means to create a good-looking scalable and well-behaved UI. We also cover details of the layout manager being used and look at the generated code.

<P><a name="BOF-9288"></a><h2>BOF-9288 Interactive Ant-Based Development Using the NetBeans IDE</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 8:30 PM
<BR><b>Location :</b>  Pacific J Marriott
<BR><b>Speaker :</b> Jesse Glick, Petr Hrebejk -  Sun Microsystems
<BR><b>Description :</b>
<P> With the advent of Apache Ant as the most popular build tool for Java&trade; technology programmers it has become more important for the full power of Ant build scripts to be tightly integrated into the daily workflow of a developer. If you are an experienced Ant user you know you can build and test any kind of project with Ant no matter how specialized your needs and no matter what tools or processes you need to incorporate. But are you using Ant to interactively demo your program? Debug it? Deploy it to a server? Run individual unit tests? Check source code style? Generate and browse reports? Launch Java Web Start software? You can. One of the features in the 4.0 release of the NetBeans&trade; IDE is the ability to use Ant as the native build tool for any project. Although many people focus only on basic targets such as compiling sources or running JUnit you can also enhance your Ant scripts to compile run test or debug individual classes; display HTML reports; run style checkers of all sorts; and more. With IDE integration it is possible to make even complex packaging and debugging procedures a keystroke away and once configured other team members can enjoy the benefits too. The session demonstrates how to load an existing project with a simple Ant script into the NetBeans IDE. You then see how to add to the script and configure the IDE to enable interactive workflow features such as source debugging; running of single unit tests; and reporting on style errors or code coverage with either hyperlinked text or full HTML output. You should have some experience writing Ant scripts. Experience using an IDE will be helpful.

<P><a name="BOF-9596"></a><h2>BOF-9596 Productive Development of Web Apps With the NetBeans IDE</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 9:30PM
<BR><b>Location :</b>  Golden Gate C1
<BR><b>Speaker :</b> Ludovic Champenois, Pavel Buzek, Petr Pisl - Sun Microsystems
<BR><b>Description :</b>
<P> The main reason why developers usually start using an IDE is because tools make development more productive and easier. This session demonstrates the ease of development of web applications in the NetBeans&trade; IDE through concrete examples. We show how to use NetBeans software for developing web applications based on popular frameworks, such as JavaServer&trade; Faces, Struts, Spring, or Hibernate. We show the whole end-to-end development cycle from creating a new web application through editing, debugging, and testing to deployment. We also illustrate a bunch of features in NetBeans software that make development easier.

<P>This session is geared toward users who create web applications and use frameworks. We develop an example application, during which will present the following features:

<ul>
<li>How to use the NetBeans IDE for developing web applications based on popular frameworks
<li>How to set up NetBeans software to develop in a framework, which is not supported directly
<li>How to use test frameworks for the web application
<li>Other cool features in NetBeans software, such as:
  <ul>
  <li>JavaServer Pages&trade; (JSP&trade;) technology standard syntax, code completion, integrated help
  <li>HTML syntax, code completion, integrated help
  <li>Error Annotation in JSP technology editor
  <li>Hyperlinking in JSP technology editor
  <li>Deployment descriptor syntax
  <li>Using tag libraries and tag files
  <li>Debugging web application
  <li>Deployment web application
  </ul>
</ul>

<P><a name="BOF-9184"></a><h2>BOF-9184 How to Write APIs That Will Stand the Test of Time</h2>
<b>Date &amp; Time :</b> 29-JUN-05, 10:30 PM
<BR><b>Location :</b>  Golden Gate C1 Marriott
<BR><b>Speaker :</b> Jaroslav Tulach - Sun Microsystems
<BR><b>Description :</b>
<P>
To date designing professional cross-platform GUIs with Java&trade; Foundation Classes/Swing technology (JFC/Swing) has been tedious and error prone. Developers are forced to write cryptic code for an inherently visual task. This has resulted in numerous less than appealing Java technology GUIs as well as unmaintainable code. The new version of the NetBeans&trade; software GUI builder focuses directly on this problem making the layout design of visual forms easy for everyone without the need to know JFC/Swing layout principles. The GUI builder exposes simple layout rules that the user is able to understand and use quickly. It lets the user lay out components freely providing assistance for optimal spacing between components and easy aligning and it infers resizing behavior and more. In the background it produces a layout implementation using layout managers and other JFC/Swing constructs. Besides seeing the new tool in action you'll also learn what it means to create a good-looking scalable and well-behaved UI. We also cover details of the layout manager being used and look at the generated code.


</body>
</html>
