Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "DSDP/MTJ/Requirements/Multi-Configuration Support"
(→ID: Multi-Config: FR011 - MTJ shall support build configuration for each runtime configuration.) |
|||
(28 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | === ID: Multi-Config: FR001 - Configuration data format & persistence=== | |
'''Description:''' | '''Description:''' | ||
Line 5: | Line 5: | ||
(multi-device) meta data. We should define the data format and persistence the | (multi-device) meta data. We should define the data format and persistence the | ||
data. | data. | ||
+ | |||
''1. Data format:'' | ''1. Data format:'' | ||
− | |||
− | |||
− | |||
<configurations> | <configurations> | ||
<configuration active="true" name="A910"> | <configuration active="true" name="A910"> | ||
Line 18: | Line 16: | ||
</configuration> | </configuration> | ||
<configuration active="false" name="S40_5th_Edition_SDK_Feature_Pack_1"> | <configuration active="false" name="S40_5th_Edition_SDK_Feature_Pack_1"> | ||
− | <device group="Series 40 5th Edition SDK, Feature Pack 1" | + | <device group="Series 40 5th Edition SDK, Feature Pack 1" name="S40_5th_Edition_SDK"/> |
− | name=" | + | |
<symbolSet> | <symbolSet> | ||
<symbol name="screen.isTouch" value="false"/> | <symbol name="screen.isTouch" value="false"/> | ||
Line 26: | Line 23: | ||
</configuration> | </configuration> | ||
</configurations> | </configurations> | ||
− | |||
As the xml file shows above, a project meta data file contains several | As the xml file shows above, a project meta data file contains several | ||
configurations, each configuration contains a device and a symbolSet. One and | configurations, each configuration contains a device and a symbolSet. One and | ||
Line 33: | Line 29: | ||
''2. Data persistence:'' | ''2. Data persistence:'' | ||
We use MTJ J2ME project meta data file (.mtj file) for configuration data | We use MTJ J2ME project meta data file (.mtj file) for configuration data | ||
− | store. We | + | store. We keep the former <device> element of the file(For forward compatibility), add <configurations> |
element to the file. | element to the file. | ||
Line 40: | Line 36: | ||
'''Owner:''' Feng Wang | '''Owner:''' Feng Wang | ||
− | '''Status:''' | + | '''Status:''' Proposed: 20-Oct-2008 |
− | + | '''Community Review:''' TBD | |
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=251171 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. | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115333 Screen shot for Multi-configuration Reusable Management UI component] | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115344 Screen shot for adding configuration] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Feng Wang | ||
+ | |||
+ | '''Status:''' Proposed: 20-Oct-2008 | ||
'''Community Review:''' TBD | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=251172 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. | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115334 manage configurations in project create wizard] | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115342 manage configurations in project Application Descriptor Editor] | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115343 manage configurations in project properties page] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Feng Wang | ||
+ | |||
+ | '''Status:''' Proposed: 20-Oct-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=249832 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. | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=115345 One folder for each configuration] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Feng Wang | ||
+ | |||
+ | '''Status:''' Proposed: 20-Oct-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=249834 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:''' | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/show_bug.cgi?id=251343 bug251343 ] | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/show_bug.cgi?id=251344 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. | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=116911 Preprocess directive content assit] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Gang Ma | ||
+ | |||
+ | '''Status:''' Proposed: 04-Nov-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=253648 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. | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=116909 Preprocess symbols content assit] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Gang Ma | ||
+ | |||
+ | '''Status:''' Proposed: 04-Nov-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=253653 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 | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=116802 Preprocess template content assit] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Gang Ma | ||
+ | |||
+ | '''Status:''' Proposed: 04-Nov-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=253162 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 | ||
+ | |||
+ | [https://bugs.eclipse.org/bugs/attachment.cgi?id=116802 Preprocess template configuration] | ||
+ | |||
+ | '''Priority:''' 1 | ||
+ | |||
+ | '''Owner:''' Gang Ma | ||
+ | |||
+ | '''Status:''' Proposed: 04-Nov-2008 | ||
+ | |||
+ | '''Community Review:''' TBD | ||
+ | |||
+ | '''Related Bugs:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=253645 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:''' [https://bugs.eclipse.org/bugs/show_bug.cgi?id=255130 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:''' [https://bugs.eclipse.org/bugs/attachment.cgi?id=131695 Build Editor Page 1] | ||
+ | |||
+ | '''Related Images:''' [https://bugs.eclipse.org/bugs/attachment.cgi?id=131696 Build Editor Page 2] | ||
+ | |||
+ | '''Related Bugs:''' {{bug|258219}} |
Latest revision as of 11:04, 16 April 2009
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