<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--  Use this to test local rendering in firefox -->
<!-- <?xml-stylesheet type="text/xsl" href="project-plan.xsl"?> -->
<?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?>
<p:plan plan-format="1.0" xmlns:p="http://www.eclipse.org/project/plan" xmlns="http://www.w3.org/1999/xhtml"
      name="Mobile Tools for Java">
  <p:release projectid="dsdp.mtj" version="0.9.1"/>
    <p:introduction>
<div>
<p>
The goal of the Mobile Tools for Java<sup><small>TM</small></sup> (MTJ) project is to extend existing Eclipse frameworks to
support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java
applications to emulators and real devices. The base code of MTJ is <a href="http://www.eclipseme.org"> EclipseME</a> version 1.7.9.
</p>
<p>
After MTJ 0.9 release, DSDP MTJ project agreed to have a maintenance release with some new features and bug fixes. The main motivation for this release is to:
<ul>
    <li>Provide new features to MTJ before joining Eclipse Galileo Train,</li>
    <li>Fix all major bugs that are found on MTJ 0.9.</li>
</ul>
The target data of this release is the end of 2008. After the release, MTJ will join Eclipse Galileo Train and focus on integration with Galileo and
use Galileo specific features.
</p>
 
<p>
MTJ 0.9.1 scope is listed below. It is important to highlight that the bug fixes is a higher priority then any of the new features. Any features
might be dropped out of the scope if there are too many major bugs on MTj 0.9
<ul>
    <li>Fix major bugs of MTJ 0.9,</li>
    <li>Preprocessing enhancements,</li>
    <li>Library support,</li>
    <li>Unit Test support,</li>
    <li>MIDlet localization tool.</li>
</ul>
</p>
<p>
Initially there is no plan to change the current APIs that are available on MTJ. Maybe the Library support feature will require a new API,
but if that happen this will be open discussed on MTJ DEV list. 
</p>
</div>
  </p:introduction>
  <p:release_deliverables>
<div>
<p>
MTJ 0.9.1 deliverables will be the same as MTJ 0.9. No new deliverables will be added, but all documents will be updated to reflect 
the new features.
</p>
</div>
  </p:release_deliverables>

  <p:release_milestones>
    <p:preamble>
<div>
Below is a list of all milestones of this release.
</div>
    </p:preamble>
    <p:milestone date="Dec/05/2008" milestone="RC1" bugzilla=""><div>0.9.1RC1 (API and Feature freeze)</div></p:milestone>
    <p:milestone date="Dec/12/2008" milestone="RC2" bugzilla=""><div>0.9.1RC2 (All Most major bugs fix)</div></p:milestone>
    <p:milestone date="Dec/19/2008" milestone="GA" bugzilla=""><div>0.9.1 (Web site update and download available)</div></p:milestone>
    <p:postamble>
    </p:postamble>
  </p:release_milestones>
  <p:target_environments>
<div>
<p>
MTJ Deliverables will be tested on the following platforms
</p>

<table summary="Mobile Tools for Java Reference Platforms" style="width: 821px;"
border="1">
<tbody>
<tr bgcolor="#cccccc">
<th colspan="6">
<div align="center"><strong><font size="+1">Mobile Tools for Java Reference
Platforms</font></strong></div>
</th>
</tr>
<tr>
<td width="205"><b>Operating system</b></td>
<td width="59"><b>OS version</b></td>
<td width="76"><b>Processor architecture</b></td>
<td width="59"><b>Window system</b></td>
<td width="300"><b>Java 2 Platform</b></td>
<td width="220"><b>JavaME SDK</b></td>
</tr>
<tr>
<td width="205">Microsoft Windows</td>
<td width="59">XP</td>
<td width="76">x86</td>
<td width="59">Win32</td>
<td width="300"> Sun Java 2 Standard Edition 5.0 Update 14
for Microsoft Windows </td>
<td width="220">MOTODEV SDK for JavaME 1.3</td>
</tr>
<tr>
<td width="205">Microsoft Windows</td>
<td width="59">XP</td>
<td width="76">x86</td>
<td width="59">Win32</td>
<td width="300"> Sun Java 2 Standard Edition 5.0 Update 14
for Microsoft Windows </td>
<td width="220">Sun Java Wireless Toolkit 2.5.2 for CLDC</td>
</tr>
<tr>
<td width="205">Microsoft Windows</td>
<td width="59">XP</td>
<td width="76">x86</td>
<td width="59">Win32</td>
<td width="300"> Sun Java 2 Standard Edition 5.0 Update 14
for Microsoft Windows </td>
<td width="220">Nokia Serier 40 Developer Platform 2.0 SDK</td>
</tr>
<tr>
<td width="205">Red Hat Enterprise Linux</td>
<td width="59">WS 4 update 2</td>
<td width="76">x86</td>
<td width="59">GTK</td>
<td width="300"> Sun Java 2 Standard Edition 5.0 Update 14
for Linux x86</td>
<td width="220">Sun Java Wireless Toolkit 2.5.2 for CLDC</td>
</tr>
<tr>
<td width="205">Apple Mac OS X</td>
<td width="59">10.5</td>
<td width="76">x86</td>
<td width="59">Carbon</td>
<td width="300">
Apple Java 2 Platform Standard Edition (J2SE) 5, service release 4
</td>
<td width="220">Mpowerplayer build 1185</td>
</tr>
<tr>
<td width="205">Apple Mac OS X</td>
<td width="59">10.5</td>
<td width="76">x86</td>
<td width="59">Carbon</td>
<td width="300">
Apple Java 2 Platform Standard Edition (J2SE) 5, service release 4
</td>
<td width="220">Microemu 2.0.3</td>
</tr>
</tbody>
</table>

<p>
Although untested, MTJ should work fine on other OSes that
support the same window system. For Win32: NT, 2000, Vista, and Server
2003; SWT HTML viewer requires Internet Explorer 5 (or higher).
For GTK on other Linux systems: version 2.2.1 of the GTK+ widget toolkit
and associated libraries (GLib, Pango).
</p>
</div>

    <p:internationalization>
<div>
<p>
Currently MTJ is only available in English and it is not designed to be localized yet.
</p>
</div>
    </p:internationalization>
</p:target_environments>

    <p:compatibility_with_previous_releases>
<div>    
<p>
In terms of compatibility, there are three main aspects that need to be considered.
</p>
<p>
  <strong>API Contract Compatibility:</strong> Since this is a maintenance release, MTJ 0.9.1 is fully compatible with MTJ 0.9.
</p>
<p>
  <strong>SDK Workspace format compatibility:</strong> MTJ 0.9.1 is fully compatible with MTJ 0.9.
</p>
<p>
  <strong>MIDlet Workspace format compatibility:</strong> MTJ 0.9.1 is fully compatible with MTJ 0.9.
</p>
</div>
  </p:compatibility_with_previous_releases>
     
  <p:themes_and_priorities>
    <p:preamble>
<div>
<p>
Plan items listed below are based on the original planning objectives that were established on the Mobile Tools for Java
Project 0.9.1.
</p>
</div>
    </p:preamble>

    <p:theme name="Fix and Improve">
      <p:description>
Bug fix is highest priority area of MTJ 0.9.1. The bugs on this category are marked with [fiximprove] on the subject
      </p:description>
      <!--  Query: short_desc LIKE %[fiximprove]% -->
      <p:committed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[fiximprove%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=0.9.1&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:committed>
      <p:proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[fiximprove%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=---&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:proposed>
      <p:deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[fiximprove%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=Future&amp;keywords_type=allwords&amp;keywords=&amp;priority=P4&amp;priority=P5&amp;cmdtype=doit"></p:deferred>
    </p:theme>
    <p:theme name="Localization Tool">
      <p:description>
Localization is tasks that is very important on MIDlet development. This tool make it easy for developer to localize their MIDlets. The main idea
is to have some some way to define constants that can be used on the code and some code infra-structure to load and use those constants. A resource
file will keep all constants values. The bugs on this category are marked with [localization] on the subject.
      </p:description>
      <!--  Query: short_desc LIKE %[localization]% -->
      <p:committed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[localization%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=0.9.1&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:committed>
      <p:proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[localization%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=---&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:proposed>
      <p:deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[localization%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=Future&amp;keywords_type=allwords&amp;keywords=&amp;priority=P4&amp;priority=P5&amp;cmdtype=doit"></p:deferred>
    </p:theme>
    <p:theme name="Library Support">
      <p:description>
The library support is a feature that was requested by different companies. The plan for this feature is to define a mechanism that can be used to
select external MIDlet libraries that the MIDlet can use. those libraries would then be automatically added to the MIDlet project and bundled
together with the final deployable package. The bugs on this category are marked with [library] on the subject.
      </p:description>
      <!--  Query: short_desc LIKE %[library]% -->
      <p:committed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[library%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=0.9.1&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:committed>
      <p:proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[library%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=---&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:proposed>
      <p:deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[library%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=Future&amp;keywords_type=allwords&amp;keywords=&amp;priority=P4&amp;priority=P5&amp;cmdtype=doit"></p:deferred>
    </p:theme>
        <p:theme name="Unit Test Support">
      <p:description>
 The plan for this feature is to define a mechanism that can be used to create unit tests for MIDlets using the JMUnit library. The bugs on this category are marked with [unittestsupport] on the subject.
      </p:description>
      <!--  Query: short_desc LIKE %[unittestsupport]% -->
      <p:committed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[unittestsupport%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=0.9.1&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:committed>
      <p:proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[unittestsupport%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=---&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:proposed>
      <p:deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[unittestsupport%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=Future&amp;keywords_type=allwords&amp;keywords=&amp;priority=P4&amp;priority=P5&amp;cmdtype=doit"></p:deferred>
    </p:theme>
    <p:theme name="Multiple Device Development">
      <p:description>
The mais issue on JavaME development is to handle all the different types of devices that are available on the workd. Each device has a different
set of capabilities and it is necessary to develop the MIDlets in a way that the it can be adapted according to the device. THe best way to work with this issue
is to work with somekind of device base, that describe all the different device capabilities, and has a build system that enables building the JAr/JAD
to a set of different devices based on the device base.
All bugs on this category are marked with [multdevice] on the subject
      </p:description>
      <!--  Query: short_desc LIKE %[multdevice]% -->
      <p:committed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[multdevice%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=0.9.1&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:committed>
      <p:proposed bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[multdevice%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=---&amp;keywords_type=allwords&amp;keywords=&amp;priority=P1&amp;priority=P2&amp;priority=P3&amp;cmdtype=doit"></p:proposed>
      <p:deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=[multdevice%5D&amp;classification=DSDP&amp;product=MTJ&amp;target_milestone=Future&amp;keywords_type=allwords&amp;keywords=&amp;priority=P4&amp;priority=P5&amp;cmdtype=doit"></p:deferred>
    </p:theme>
  </p:themes_and_priorities>
</p:plan>
