< DSDP | MTJ | Discussion | Refactoring
Revision as of 18:14, 29 January 2009 by Wds057.motorola.com
New API structure
- After analyzing the current API, it was found that most of classes that are public are not necessary and can be moved to the internal api package.
- Some refactory should be done to remove MIDP methods and attributes from the more common interfaces, for example IDevice, and make them more generic,
org.eclipse.mtj.core + build [ all classes and interfaces related to build tasks ] + preverification + MIDP - StandardPreverifierFactory - StandardPreverifierParameters - StandardPreverifier - IPreverifier + preprocessing - ISymbolDefinitionSetChangeListener - SymbolDefinition - SymbolDefinitionSet - SymbolDefinitionSetRegistry + sign + MIDP - midp especific classes and interfaces - ISignatureProperties - SignaturePasswords - SignatureProperties + deploy - IBuildConsoleProxy - BuildConsoleProxy - MTJBuilder + persistence [classes managing persistence] - IPersistable - IBundleReferencePersistable - IPersistenceProvider - PersistableUtilities - PersistenceException + project [ all classes and interfaces related to a MTJ project ] + MIDP - IMidletSuiteProject - IMidletSuiteProjectListener - MidletSuiteFactory - IMTJNature - MTJProjectConverter - MetaData - ProjectConvertionException + sdk + device + MIDP - IMIDPDevice [ Extend IDevice and add MIDP specific aspects ] - ILaunchConstants - LaunchEnvironment - IDevice [ Create a basic device spec, with out the MIDP aspects ] - IDeviceImporter - ILaunchEnvironment - ISDK [ Some information available in each device are replicated and refers to the sdk info] [ this informations could be added to a SDK class that would aggregate all devices ] - IBaseModel - IEditable - IModel - IModelChangedEvent - IModelChangeProvider - IModelProvider - IModelProviderEvent - IModelProviderListener - IResourceFilter - IWritable - JavaMECore [ follow the same concept as JDT, and externalize some aspects by this facade, instead of so many classes ] [ For example, check if a certain nature is available.]
org.eclipse.mtj.toolkit.uei [ No API needed could turn it into internal ]
org.eclipse.mtj.core.library [ Implementations can be moved to internal, they are not necessary to be public ] [ only models need to be public but must use API Restrictions such as @noimplement ] + security Permission PermissionList SecurityInfo - MidletLibrary - ProtectionDomain - ILibrary - Visibility
org.eclipse.mtj.ui [ Most of packages are not really an API, can be moved to internal ] + editors + device [ required by implementors of device importer E.P ] + jad [ required by implementors of jad vendor specific E.P ]
Other Options, Opinions, etc
- Please, contribute...