DSDP/MTJ/Requirements/Multi-Configuration Support

From Eclipsepedia

Jump to: navigation, search

Multi-Configuration Support Requirement

ID: Multi-Config: FR001 - Configuration data format & persistence

Description: Each MTJ Java ME project should store the multi-configuraton (multi-device) meta data. We should define the data format and persistence the data.

1. Data format:

  <configurations>
     <configuration active="true" name="A910">
        <device group="MOTODEV SDK for Java(TM) ME" name="A910"/>
        <symbolSet>
           <symbol name="CLDC" value="1.1"/>
           <symbol name="JSR82" value="1.0"/>
        </symbolSet>
     </configuration>
     <configuration active="false" name="S40_5th_Edition_SDK_Feature_Pack_1">
        <device group="Series 40 5th Edition SDK, Feature Pack 1" name="S40_5th_Edition_SDK"/>
        <symbolSet>
           <symbol name="screen.isTouch" value="false"/>
           <symbol name="WMA" value="2.0"/>
        </symbolSet>
     </configuration>
  </configurations>

As the xml file shows above, a project meta data file contains several configurations, each configuration contains a device and a symbolSet. One and only one configuration is "active".

2. Data persistence: We use MTJ J2ME project meta data file (.mtj file) for configuration data store. We keep the former <device> element of the file(For forward compatibility), add <configurations> element to the file.

Priority: 1

Owner: Feng Wang

Status: Proposed: 20-Oct-2008

Community Review: TBD

Related Bugs: bug251171



ID: Multi-Config: FR002 - Multi-configuration Reusable Management UI component

Description: We will manage (add/remove/edit/switch-active) configurations in seviral place (such as in Application Descriptor Form Editor, in project properties page, in peojrct create wizard page, etc.), so we should create a reusable UI component for configuration management. DeviceSelector.java is a example.

Screen shot for Multi-configuration Reusable Management UI component

Screen shot for adding configuration

Priority: 1

Owner: Feng Wang

Status: Proposed: 20-Oct-2008

Community Review: TBD

Related Bugs: bug251172


ID: Multi-Config: FR003 - manage configurations

Description: To let users manage (add/remove/edit/switch-active) configurations easily, We will have 3 place to manage configurations: 1. Project create wizard page. 2. Application Descriptor Editor. 3. Project properties page.

manage configurations in project create wizard

manage configurations in project Application Descriptor Editor

manage configurations in project properties page

Priority: 1

Owner: Feng Wang

Status: Proposed: 20-Oct-2008

Community Review: TBD

Related Bugs: bug249832


ID: Multi-Config: FR004 - Separate deploy folders for multi-target build and distribution

Description: Since the project will have multiple devices associated to it, the deployment folder also need to separated according to the devices associated on the project. when the project is build it must generate a jar/jad for each of the devices associated to the project.

We will use *configuration name* as deployment folder name. User must switch configuration before build for another configuration.

One folder for each configuration

Priority: 1

Owner: Feng Wang

Status: Proposed: 20-Oct-2008

Community Review: TBD

Related Bugs: bug249834


ID: Multi-Config: FR005 - Change Antenna Ant build file & EclipseME project importer

Description: Since deployment folder structure will change for build multi-configs, exported Antenna Ant files will also change for the target folders.

Since meta data file format will change for introducing multi-config support, EclipseME project import feature should change according the new MTJ meta data format.

Maybe NetBeans project importer also suffer some change.

Priority: 1

Owner: Feng Wang

Status: Proposed: 20-Oct-2008

Community Review: TBD

Related Bugs:

bug251343

bug251344


ID: Multi-Config: FR006 - Preprocess directive content-assist

Description: when user input the right preprocess prefix("//#" or "// #") in preprocess project(which has preprocess nature), and press content assist key("Alt+/") in right place, the supported preprocess directive will be proposed.

Preprocess directive content assit

Priority: 1

Owner: Gang Ma

Status: Proposed: 04-Nov-2008

Community Review: TBD

Related Bugs: bug253648


ID: Multi-Config: FR007 - Preprocess symbols content-assist

Description: After the right preprocess directive, if user press content assist key in a right place, the symbols belongs to the relevant project(can be configured in the configurations of the project) will be proposed.

when a symbol is selected, a pop-up window will be used to show the following information: the configuration name that provide this symbol, the symbol value provided by this configuration.

Preprocess symbols content assit

Priority: 1

Owner: Gang Ma

Status: Proposed: 04-Nov-2008

Community Review: TBD

Related Bugs: bug 253653


ID: Multi-Config: FR008 - Preprocess template content-assist

Description: Provide template content-assist for the user when he/she wants to input preprocess code.

for example, when user input '//#if', the 'if' and 'ifelse' template proposals will be provided, if user choose 'ifelse', the following code will be automatically added:

//#if ${condition1}

//#elif ${condition2}

//#endif

Preprocess template content assit

Priority: 1

Owner: Gang Ma

Status: Proposed: 04-Nov-2008

Community Review: TBD

Related Bugs: bug 253162


ID: Multi-Config: FR009 - Preprocess template configuration

Description: User can configure(add, delete, edit) the preprocess templates in Java ME ->Preprocess Template preference page

Preprocess template configuration

Priority: 1

Owner: Gang Ma

Status: Proposed: 04-Nov-2008

Community Review: TBD

Related Bugs: bug 253645


ID: Multi-Config: FR010 - Preprocess debug/mdebug directive support

Description: Provide 5 types of debug level: debug, error, fatal, info and warn just like Antenna. User can configure the debug level in the project's property page and perference page.

Preprocessor can use the project's debug level setting to preprocess the source file, for example, if the project's debug level is set as 'error', the following code:

//#debug warn

System.out.println("warn");

after preprocessed, the code will be:

// #debug warn

//@ System.out.println("debug");

Priority: 1

Owner: Gang Ma

Status: Proposed: 13-Nov-2008

Community Review: TBD

Related Bugs: bug 255130


ID: Multi-Config: FR011 - MTJ shall support build configuration for each runtime configuration.

Description: Each runtime configuration may require a specific set of resources, since that, MTJ shall provide a way for developers to customize the contents packaged on the application package during build.

Priority: 1

Owner: David Marques

Status: Proposed: 12-Apr-2009

Community Review: TBD

Related Bugs: bug 258219


ID: Multi-Config: FR012 - MTJ shall provide a Build Editor.

Description: MTJ shall provide a build editor in order to manage the build.properties file content.

Priority: 1

Owner: David Marques

Status: Proposed: 12-Apr-2009

Community Review: TBD

Related Images: Build Editor Page 1

Related Images: Build Editor Page 2

Related Bugs: bug 258219