DSDP/MTJ/Requirements/Multi-Configuration Support
Contents
- 1 ID: Multi-Config: FR001 - Configuration data format & persistence
- 2 ID: Multi-Config: FR002 - Multi-configuration Reusable Management UI component
- 3 ID: Multi-Config: FR003 - manage configurations
- 4 ID: Multi-Config: FR004 - Separate deploy folders for multi-target build and distribution
- 5 ID: Multi-Config: FR005 - Change Antenna Ant build file & EclipseME project importer
- 6 ID: Multi-Config: FR006 - Preprocess directive content-assist
- 7 ID: Multi-Config: FR007 - Preprocess symbols content-assist
- 8 ID: Multi-Config: FR008 - Preprocess template content-assist
- 9 ID: Multi-Config: FR009 - Preprocess template configuration
- 10 ID: Multi-Config: FR010 - Preprocess debug/mdebug directive support
- 11 ID: Multi-Config: FR011 - MTJ shall support build configuration for each runtime configuration
- 12 ID: Multi-Config: FR012 - MTJ shall provide a Build Editor
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:
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