<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>NetBeans Mobility Pack for CDC 5.5.1 Release Notes</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <meta name="description" content="NetBeans Mobilty Pack 5.5.1 for CDC Release Notes: 
        Introduction, Compatibility, Known Issues, Documentation">
       <link rel="stylesheet" type="text/css" href="../../../../netbeans.css">
        <style type="text/css">
<!--
.style1 {
	font-family: "Courier New", Courier, mono;
	font-style: italic;
}
-->
        </style>
    </head>
    <body>

        <a name="top"></a>
        
<h1>NetBeans Mobility Pack for CDC 5.5.1 Release Notes </h1>

        
<blockquote> 
  <p>Welcome to the NetBeans Mobility Pack for CDC, an add-on pack that provides 
    the tools for creating Java Micro Edition (Java ME) applications that support 
    the Java ME, Connected Device Configuration (CDC) technologies.</p>
	</blockquote>
  <h2 style="color:#0E1B55">Contents</h2>
  <ul>
    <li><a href="#system_requirements">System Requirements</a> 
    <li><a href="#compatibility">Compatibility</a></li>
    <li><a href="#known_issues">Known Issues </a></li>
    <li><a href="#documentation">Documentation</a></li>
    <li><a href="#more_info">More Information</a></li>
  </ul>
                
  <p>&nbsp;</p>
  <p><b>Note: </b>If you are looking for information about installing the NetBeans 
    Mobility Pack for CDC 5.5.1, see the <a href="mobilitycdc-install.html">NetBeans 
    Mobility Pack for CDC 5.5.1 Installation Guide</a>. </p>
  <p align="center"><a href="#top">top</a></p>
 
<h2><a name="system_requirements"></a>System Requirements</h2>
            <!--<a name="req_os"></a>-->
            <h5 style="border-bottom:0">Supported Operating Systems</h5>
            
  <p>The NetBeans Mobility Pack for CDC 5.5.1 runs on the Java SE JDK versions 5.0 
    and 6.0, 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 for CDC runs on Microsoft Windows systems that 
    support the Java VM. Below is a list of platforms that NetBeans IDE has been 
    tested on. 
  <ul>
    <li>Microsoft Windows Vista</li>
	<li>Microsoft Windows XP Professional SP2</li>
    </ul>         
            
            
<p><a name="min_hw"></a> </p>
<p><b>Installing NetBeans Mobility Pack for CDC 5.5.1 to non-Windows platforms</b></p>
<p>Currently the Mobility Pack for CDC is not available for non-Windows platforms 
  due to a lack of 3rd party emulator support for other platforms. However, we 
  do offer an unsupported binary zip of the pack for those who want to install 
  the pack on other operating systems. Please note that there is no documentation 
  or support for the binary zip. For information about downloading and installing 
  the binary zip, please visit the <a href="http://wiki.netbeans.org/wiki/view/MobilityFromZipToNB">FAQ 
  page</a> for this topic. The <a href="https://netbeans.org/projects/mobility/lists/users/archive">Mobility 
  Users mailing list</a> is also available for further questions related to this 
  topic.</p>
<h5 style="border-bottom:0">Minimum Hardware Configurations</h5>
  <p style="border-bottom:0">The Mobility Pack for CDC does not require significant 
    resources beyond those required by the NetBeans IDE. </p>
            
            <div class="greybox">
                <p><b>Note:</b> The IDE's minimum screen resolution is 1024x768 pixels.</p>
            <ul>
      <li><b>Processor: </b>500 MHz Intel Pentium III workstation or equivalent</li>
      <li><b>Memory: </b>512 MB</li>
      <li><b>Disk space: </b>850 MB of free disk space </li>
    </ul>
  </div>               
            
                
  <a name="req_hw"></a>
                <h5 style="border-bottom: 0pt none;">Recommended Hardware Configurations</h5>
                
  
<ul>
        <li><b>Processor: </b>1.4 GHz Intel Pentium III workstation or equivalent</li>
        <li><b>Memory: </b>1 GB</li>
        <li><b>Disk space: </b>1 GB of free disk space </li>
  </ul>
    </li>
  </ul>


            <a name="req_sw"></a>
            <h5 style="border-bottom:0">Required Software</h5>
            
  <p>NetBeans IDE runs on the J2SE JDK (Java SE Development Kit) 5.0 and 6.0, 
    which consists of the Java Runtime Environment plus developer tools for compiling, 
    debugging, and running applications written in the Java language. </p>
  <p>You can download the JDK for your platform at <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p>
  <p><strong>Emulator Platforms</strong></p>
  <p>The Sun Java Toolkit for CDC is integrated within the NetBeans Mobility Pack. 
    However, if you want to program applications for other supported platforms, 
    you need to download and install one or more of the following SDKs:</p>
  <ul>
    <li>Ricoh 
      <ul>
        <li>Embedded Software Architecture Emulator (Registration required for 
          <a href="http://www.ricoh.com/esa/index.html">Download</a>)</li>
      </ul>
    </li>
    <li>Sony Ericsson 
      <ul>
        <li>UIQ 3 SDK (login required for <a href="http://developer.uiq.com/">download</a>)</li>
        <li>M600 Extension Package for the UIQ 3 SDK Beta 3 (<a href="http://developer.sonymobile.com/downloads/sdks/">download</a>)</li>
        <li>P990 Extension Package for the UIQ 3 SDK Beta 3 (<a href="http://developer.sonymobile.com/downloads/sdks/">download</a>)</li>
      </ul>
    </li>
    <li>Nokia 
      <ul>
        <li>Nokia Series 80 Platform SDK for Symbian OS, for Java, Personal Profile 
          (<a href="http://www.forum.nokia.com/info/sw.nokia.com/id/449a2f84-2a8a-44fa-a7f4-93b53cb9c89a/Series_80_Platform_SDK_s_for_Symbian_OS_for_Java.html">download</a>)</li>
      </ul>
    </li>
    <li>Windows Mobile with NSIcom CrEme VM 
      <ul>
        <li> CrEme 4.10 Developer Support (<a href="http://nsicom.com/shared/CrEmeDevSup410.exe">download</a>)</li>
        <li>Microsoft Device Emulator 1.0 (<a href="http://www.microsoft.com/en-us/download/details.aspx?id=20259">download</a>) 
        </li>
        <li>Virtual Machine Network Driver for Microsoft Device Emulator (<a href="http://www.microsoft.com/en-us/download/details.aspx?id=2863">download</a>)</li>
        <li>ActiveSync (<a href="http://www.microsoft.com/en-us/download/details.aspx?id=15">download</a>)</li>
      </ul>
    </li>
    <li> SavaJe 
      <ul>
        <li> The SavaJe Mobile Platform (no longer available)</li>
      </ul>
    </li>
  </ul>
  <p>&nbsp;</p>
  <p>The CDC Pack 5.5.1 supports deployment on Windows Mobile (with the NSIcom 
    VM) and SavaJe devices.</p>
  <p>Installation instructions for each emulator are available in the <a href="mobilitycdc-install.html">NetBeans Mobility Pack for CDC 5.5.1 Installation Guide. </a></p>
        <p align="center"><a href="#top">top</a></p>
<h2><a name="compatibility"></a>Compatibility</h2>
  
<p>When you first run the IDE with NetBeans Mobility Pack, you can import a subset 
  of the settings you used in NetBeans Mobility Pack for CDC 5.5. If you choose 
  not to import settings from that previous release, the IDE opens using the default 
  settings. </p>
        <blockquote>
          <p><b>Note:</b><i> The IDE only recognizes previous installations where 
          the user directory resides in the default location. It does not recognize 
          installations where you have specified a user directory using the <code>--userdir</code> 
          switch. If you would like to import settings from an IDE that the installer 
          does not recognize, download an archive version of the IDE instead of the 
          installer.</i></p>
    </blockquote>
        
  <p>Though it is possible to import settings from the NetBeans Mobility Pack 
    for CDC 5.0 into the NetBeans 5.5.1, it is not possible to import settings from 
    NetBeans Mobility Pack for CDC 5.5.1 into the earlier IDE release. </p>
        <p align="center"><a href="#top">top</a></p>
        <a name="known_issues"></a>
        <h2>Known Issues</h2>
        <div class="indent">
            
  <p>The unresolved issues for this release are as follows: </p>
        
<blockquote> 
  <ul>
    <!--
                    <li><a href="ADD ISSUE LINK HERE">Issue #ADD ISSUE NUMBER HERE:  
                    ADD ISSUE TITLE HERE.</a> 
                    <blockquote>
                        <p><b>Description:</b> ADD DESCRIPTION HERE.</p> 
                        <p><b>Workaround:</b> ADD WORKAROUND HERE.</p>
                    </blockquote></li>-->
    <li> Issue <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=77083">#77083:</a> 
      icon.small/icon.focused has absolute path after deployment 
      <blockquote> 
        <p><b>Description: </b>The <code>bundle.jnlp</code> contains an absolute 
          path for icon.small and icon.focused. That is because the icons are 
          located on the device. In the text field, you must enter the path ot 
          the icon as it is defined on the device. The correct location (path) 
          should be listed in the device documentation. </p>
      </blockquote>
    </li>
    <li>Issue<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=86566">#86566:</a> 
      Error while saving palette settings. 
      <blockquote> 
        <p><b>Description: </b>GUI Designer Palette settings are not saved if 
          you change the project's emulator platform.</p>
      </blockquote>
    </li>
    <li>Issue<a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88709">#88709:</a> 
      Build fails when switching between emulator platforms. 
      <blockquote> 
        <p><b>Description: </b>If you change platform from Nokia to Sony Ericsson, 
          the build fails. </p>
        <p><b>Workaround: </b>Change the UID by right-clicking on the project 
          and choosing Project Properties &gt; General &gt; Sony Ericsson. </p>
      </blockquote>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=77083">Issue #77083:</a> 
      Absolute path link for icons in bundle.jnlp file 
      <blockquote> 
        <p><b>Description:</b> icon.small and icon.focused has absolute path after 
          deployment.</p>
        <p><b>Workaround:</b> The path can be specified for devices according 
          to the device's documentation.</p>
      </blockquote>
    

    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88913">Issue #88913:</a> 
      Cannot find nbproject/build-impl.xml error 
      <blockquote> 
        <p><b>Description:</b> Internationalized version of IDE will receive error 
          message if you Build, Run and Rename a project. </p>
      </blockquote>
    </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90047">Issue #90047:</a> 
      Problems debugging CDC projects 
      <blockquote> 
        <p><b>Description:</b> java.lang.NoClassDefFoundError is thrown when trying 
          to debug a CDC project</p>
        <p><b>Workaround:</b> Debugging doesn't work if you load a CDC Toolkit 
          project to Mobility Pack for CDC. You must upgrade the project to Mobility 
          Pack for CDC by going to the project's Properties, clicking OK and following 
          the steps the IDE gives. </p>
      </blockquote>
    </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90647">Issue 90647:</a> 
      Cannot change device of Sony Ericsson UIQ platform within IDE 
      <blockquote> 
        <p><b>Description:</b> The target device of the platform cannot be changed 
          in the IDE </p>
        <p><b>Workaround:</b> Run SDKConfig.exe utility located in <span class="style1">&lt;install_dir&gt;</span>\UIQ3SDK\epoc32\tools\distrib\ 
          where <span class="style1">&lt;install_dir&gt;</span> is the directory 
          the Sony Ericsson UIQ3 emulator was installed on your computer. </p>
      </blockquote>
    </li>
    <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90654">Issue #90654:</a> 
      Projects built using Mobility Pack for CDC 5.5.1 update1 fail after upgrading 
      to FCS version 
      <blockquote> 
        <p><b>Description:</b> Problem is caused by the execution method being 
          incorrect for the FCS version of CDC pack </p>
        <p><b>Workaround:</b> Change project Properties to the Xlet execution 
          method when upgrading projects using AGUI that were created with Mobility 
          Pack for CDC 5.5.1 update1. </p>
      </blockquote>
    </li>
  </ul>
	</div>
       <p align="center"><a href="#top">top</a></p>
        <a name="documentation"></a> 
        <h2>Documentation</h2>
        
  <p>In addition to the built-in help system, the NetBeans Mobility Pack for CDC 
    is documented through a series of tutorials and articles. For information 
    about the Java ME, CDC development features supported by the Mobility Pack 
    for CDC, see the following documents. <i>(See <a href="https://netbeans.org/kb/archive/index.html">NetBeans IDE Documentation Archives</a> for NetBeans 5.5 documents.)</i></p>
  <ul>
    
  <li>NetBeans Mobility 
    Pack for CDC 5.5.1 Quick Start Guide</li>
    <li>NetBeans Mobility Pack Learning 
      Trail</li>
    
  <li>NetBeans Mobility Pack for CDC Docs and Support Page</li>
  </ul>
  <blockquote> 
  <div class='greybox'></div>
</blockquote>
        <p align="center"><a href="#top">top</a></p>

        <a name="more_info"></a>
        <h2>More Information</h2> 
        <blockquote>
            
  <p>You can find news, articles, additional modules, and other useful information 
    on the NetBeans project web site. Since NetBeans and the NetBeans Mobility 
    Pack is an open-source project, the web site also provides access to source 
    code, a bug database, information on creating your own NetBeans modules, and 
    much more. </p>
            
  <p>For more information, visit <a href="http://mobility.netbeans.org/">mobility.netbeans.org/</a>. 
  </p>
            
  <p>You can keep up to date on NetBeans IDE and interact with the NetBeans community 
    by signing up for NetBeans Mobility Pack project mailing lists at <a href="https://netbeans.org/community/lists/">https://netbeans.org/community/lists/</a>. 
</blockquote>
        <p align="center"><a href="#top">top</a></p>
        
    </body>
</html>

