<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>NetBeans Mobility Pack for CLDC/MIDP 5.5 Release Notes</title>
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
</head>

<body>

<h1>NetBeans Mobility Pack for CLDC/MIDP 5.5 Release Notes</h1>
<blockquote>Welcome to the NetBeans Mobility Pack for CLDC/MIDP 5.5, 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.</blockquote>
<h2>System Requirements</h2>
<blockquote> 
  <p>The NetBeans Mobility Pack 5.5 runs on the J2SE JDK 5.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 runs on operating systems that support the Java 
  VM. Below is a list of platforms that the Mobility Pack has been tested on. </p> 
  <ul>
   <li> Microsoft Windows 2000 Professional SP4</li>
  <li>Microsoft Windows XP Professional SP2</li>
  <li>Red Hat Fedora Core 3</li>
</ul>

  
<p>The Mobility Pack includes the <a href="http://java.sun.com/products/sjwtoolkit/download-2_2.html">J2ME 
  Wireless Toolkit, version 2.2</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>
</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"> 
    https://netbeans.org/bugzilla/enter_bug.cgi?component=mobility&amp;version=5.5</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. Once saved, they can not be opened in earlier versions 
    of the Mobility Pack. 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 J2ME 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 J2ME Wireless Toolkit 2.2 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 
      J2ME Wireless Toolkit 2.2 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 J2ME 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 J2ME 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 J2ME 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>Visual Mobile Designer projects saved in Mobility Pack 5.0 or Mobility 
      Pack 5.5 Beta 2 are not backwards-compatible with Mobility Pack 4.1 projects. 
      Once you save a project in version 5.0 or the 5.5 Beta, it cannot be reopened 
      in version 4.1.<br>
    </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.<br>
      </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 J2ME Wireless Toolkit 2.2. 
      <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>
  </ul>
</blockquote>
   <h2><a name="Documentation">Documentation</a></h2>
<blockquote> 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:
  <ul>
    <li><a href="../../../kb/55/mobility.html">NetBeans Mobility Pack 5.5 for 
      CLDC/MIDP Features and Download Page</a></li>
    <li><a href="../../../kb/55/quickstart-mobility.html">NetBeans Mobility Pack 
      5.5 for CLDC/MIDP Quick Start Guide</a></li>
    <li><a href="../../../kb/55/import-mobility.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>
