<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>NetBeans Mobility Pack 5.5.1 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../../../../netbeans.css">
</head>

<body>

<h1>NetBeans Mobility Pack 5.5.1 Release Notes</h1>
<blockquote>
  <p>Welcome to the NetBeans Mobility Pack 5.5.1, an add-on pack that provides 
    the tools for creating Java Micro Edition (Java ME) applications that support 
    the Connected, Limited Device Configuration (CLDC)/Mobile Information Device 
    Profile (MIDP) technologies.</p>
  <p><b>Note: </b>If you are looking for information about installing the NetBeans Mobility Pack for CLDC 5.5.1, see the <a href="mobility-install.html">NetBeans Mobility Pack for CLDC 5.5.1 Installation Guide</a>. </p>
  </blockquote>
<h2>System Requirements</h2>
<blockquote> 
  <p>The NetBeans Mobility Pack 5.5.1 runs on the J2SE JDK 5.0 or JDK 6.0 (Java 
    2 JDK, Standard Edition), which consists of the Java Runtime Environment plus 
    developer tools for compiling, debugging, and running applications written 
    in the Java language.</p>

The NetBeans Mobility Pack 5.5.1 runs on operating systems that support the Java 
  VM. Below is a list of platforms that the Mobility Pack has been tested on. 
  <ul>
    <li>Microsoft Windows XP Professional SP2</li>
    <li>Ubuntu 6.x</li>
  </ul>

  
<p>The Mobility Pack includes the <a href="http://java.sun.com/products/sjwtoolkit/download-2_5_1.html">Sun Java 
  Wireless Toolkit version 2.5.1</a>. </p>
  <p><b>Note:</b> The platforms supported by the NetBeans Mobility Pack might 
    differ from those supported by the emulator you plan to use. You should verify 
    that both the Mobility Pack and the emulator you plan to use are supported 
    on your particular platform.</p>
  <p><strong>Note: You must run NetBeans Mobility Pack 5.5.1 on NetBeans 5.5.1.</strong> 
    Some features might not work with NetBeans 5.5. </p>
</blockquote>


<h2><a name="BugsIssues">Bugs and Issues</a></h2>
<blockquote>
  <p>To file a new bug, request a new feature or feature enhancement, or check 
    on the status of an existing bug, use the Issuezilla bugtracking system:<a href="https://netbeans.org/bugzilla/enter_bug.cgi?component=mobility&version=5.5.1"> 
    https://netbeans.org/bugzilla/enter_bug.cgi?component=mobility&amp;version=5.5.1</a> 
  </p>
  <p><strong>Note:</strong> Projects created with the Visual Mobile Designer in 
    earlier versions of the Mobility Pack will be upgraded to a new format when 
    opened in version 5.5. For specific details, see <a href="http://wiki.netbeans.org/wiki/view/MobilityVisualDesignerVersions">http://wiki.netbeans.org/wiki/view/MobilityVisualDesignerVersions</a>.</p>
  <p>The major unresolved issues for this release are as follows:
 </p>

  <ul>
    <li>The NetBeans Mobility Pack will not run if the name of, or path to, the 
      installation directory or user directory <br>
      contains non-ASCII characters.<br>
    </li>
    <li> The Sun Java Wireless Toolkit will not run if the name of, or path to, 
      the Toolkit installation directory or user directory contains non-ASCII 
      characters.<br>
    </li>
    <li>The Sun Java Wireless Toolkit 2.5.1 emulator does not support multibyte 
      characters in a Mobility project name or in a Java class that will become 
      the name of a MIDlet or MIDlet suite. You can develop such a project using 
      the IDE, but you will not be able build or run the application if you are 
      using the Sun Java Wireless Toolkit 2.5.1 as your target platform.<br>
      <blockquote> <strong>Workaround:</strong> Use ASCII characters only in the 
        name of the project and program class names, or configure the project 
        to use an emulator that supports multibyte characters.</blockquote>
    </li>
    <li>You cannot add external Sun Java Wireless Toolkit emulators in the Linux 
      distribution under certain permissions.<br>
      <br>
      When adding the platform using the Java Platform Manager (JPM), the tool's 
      browser recognizes any Sun Java Wireless Toolkit directories and marks them 
      with the appropriate icon in the file dialog. If you attempt to add an external 
      Wireless Toolkit on Linux installed under root or a different user account, 
      however, the process fails even though the Wireless Toolkit installation 
      appears valid. This is a known issue and is caused by wrong permissions 
      set on the Wireless Toolkit executables. As a result the JPM cannot execute 
      the emulator executable and get the detailed information it needs about 
      the platform. 
      <blockquote> 
        <p><strong>Workaround:</strong> Install the external Sun Java Wireless 
          Toolkit under the same user account as the one you use to run the NetBeans 
          IDE. Optionally, if you have root access you can change the permissions 
          on the Wireless Toolkit directories and executables but that is not 
          advisable as it can cause major problems for other users using that 
          Wireless Toolkit installation.</p>
      </blockquote>
    </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=79039">Issue #79039: 
      Cannot Generate Mobile Client To Web Application for J2EE 5 Web service 
      clients<br>
      <br>
      </a>The Mobile Client to Web Application wizard doesn't work with Web services 
      client created in J2EE 5 format. The wizard doesn't show these Web service 
      clients in the combo box on the first panel. </li>
    <blockquote><strong>Workaround:</strong> Create a new J2EE 1.4 Web project 
      and add Web service client to your desired service. From the Mobility project 
      just select web service client added to this new project. </blockquote>
    <li>Run through OTA can be very slow.<br>
    </li>
    <li>If you add multiple custom components to the MIDP Visual Designer Component 
      Palette, the last custom component added occasionally becomes unusable. 
    </li>
    <blockquote> 
      <p><strong>Workaround:</strong> Remove the custom component and add it again 
        using the Component Palette Manager. </p>
    </blockquote>
    <li>Emulator opens, but no MIDlet is shown when debugging a multi-threaded 
      application, or when an application is being debugged on dual machines. 
      This is due to a bug in the Sun Java Wireless Toolkit 2.5.1. 
      <blockquote> 
        <p><strong>Workaround:</strong> Turn off hyperthreading while debugging.</p>
      </blockquote>
    </li>
    <li>When you create a new Mobile Client to Web Application, a sample MIDlet 
      can not be generated if the parameter of the Web service is a type that 
      can not be easily represented in the Visual Mobile Developer, such as an 
      array. </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=73286">Issue #73286: 
      <code>byte[] </code>elements are not recognized in WSDL.</a> <br>
      The stub generator cannot properly generate methods returning an object 
      of type: <code>byte[]</code> (if <code>char</code> is supported by WS-I 
      BP 1.0).</li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=75238">Issue 75238: 
      A sample MIDlet isn't generated for some return types in a Mobile Client 
      to Web Application.</a><br>
      This occurs when the return type of the Web service is not suitable for 
      the Visual Mobile Developer, such as an array of bytes. </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=79039">Issue #79039: 
      Cannot generate Mobile Client to Web Application for J2EE 5 Web service 
      clients.</a> <br>
      The Mobile Client to Web Application wizard doesn't work with the webservices 
      client created in J2EE 5 format. The wizard doesn't show these webservice 
      clients in the combo box on the first panel.<br>
      <blockquote> 
        <p><strong>Workaround:</strong> Create a new J2EE 1.4 Web project and 
          add a Web service client to your desired service. From the Mobility 
          project, just select the Web service client added to this new project.</p>
      </blockquote>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90112">Issue #90112: 
      The Mobile Client to Web Application wizard cannot generate a Web service 
      client.</a><br>
      The Mobile Client to Web Application wizard cannot generate a Web service 
      client if the path for the generated stubs contains a space character. </li>
  </ul>
</blockquote>
   <h2><a name="Documentation">Documentation</a></h2>
<blockquote> 
  <p>Documentation is provided for the NetBeans Mobility Pack in the
    form of web-based guides and the IDE's help system. You can use the following
  documents to get started:</p>
  <ul>
      <li><a href="https://netbeans.org/kb/archive/index.html">NetBeans Mobility Pack 5.5 Features and Download Page</a></li>
      <li><a href="https://netbeans.org/kb/archive/index.html">NetBeans Mobility Pack 5.5 Quick Start Guide</a></li>
      <li><a href="https://netbeans.org/kb/archive/index.html"> Importing Existing Java ME MIDP Source Code into NetBeans IDE 5.5</a></li>
      <!--   <li><a href="https://netbeans.org/kb/articles/tutorial-currencyconverter-40.html">
	J2ME MIDP Currency Converter Tutorial</a></li>
    <li><a href="https://netbeans.org/kb/articles/tutorial-j2mefragmentation-50.html">
	J2ME MIDP Device Fragmentation Tutorial</a></li> -->
</ul>
</blockquote>


</body>
</html>
