Analysis
Overview
This revision should explain throughly the structure of the module, what is inside a module, where are stored different components, what defines external and shared components, how are they loaded, etc. Each module has different structure in development, compiled and runtime stages. This revision should explain the differences between them.
Task requirements
- Explain the structure of an example module
- List elements that are obligatory for each module
- link explanations of them if any
- write explanations
- Explain approach applied to shared resources
- Explain how the modules are initialized (what is extracted and when).
org.sophie2.m1 |_pom.xml |_src |__main |___java |____*.java |___resources |____*.png |__test |___java |____*.java |___resources |____*.png |_target |__classes |__test classes
- List available modules now
- Describe specific information about available modules.
- Include the information from PLUGIN_MODULE_STRUCTURE_R0
- Explain differences between module in the repository and in the distribution.
Task result
Implementation idea
Implement this task in parallel with PLATFORM_STUCTURE_R2?. Use
- Each module in /modules has the following structure
/trunk/sophie2-platform/modules/org.sophie2.*/ | |
/trunk/sophie2-platform/modules/org.sophie2.*/.settings | project settings configurations for Eclipse. They must be synchronized with the sophie2-platform project settings |
/trunk/sophie2-platform/modules/org.sophie2.*/target | contains compiled classes |
/trunk/sophie2-platform/modules/org.sophie2.*/src | contains sources and configuration files |
/trunk/sophie2-platform/modules/org.sophie2.*/src/test/java | contains unit tests |
/trunk/sophie2-platform/modules/org.sophie2.*/src/test/resources | contains unit tests' tools (scripts, documentation, needed files for the tests) |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main | |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/resources | contains the resources which the module uses |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/resources/distrib | each module contains its own distrib folder it is used it contains the files which will be installed on the users machine in order each module to be completely funtional |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/java | |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/java/org | |
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/java/org/sophie2 | contains application sources |
except author module, which doesn't need test section.
Related
PLUGIN_MODULE_STRUCTURE_R0
PLATFORM_STRUCTURE_R2
How to demo
Present PLUGIN_MODULE_STRUCTURE
Design
Note: The requirement with the shared resources explanation depends on the implementation of PLUGIN_SUPPORT_LIB_BASE_R1.
The implementer have to:
- explain the structure of the org.sophie2.proto.project as an example module.
- create archive with the proto.project module in dev-tools so that the creation of the new module will not break the build anymore. It should contain at least one class for example Hello.java. (There is such in org.sophie2.base.scene.jogl module)
- explain how to create new module with correct structure (See PLATFORM_DEPLOYMENT_BUILD_ECLIPSE for help.
- explain what is extension/extension point and how to create and use them.
- use the table in impementation idea and write more detailed explanation about their usage and functions.
- see the result of PLUGIN_SUPPORT_LIB_BASE_R1 and describe how the shared resources are used and where are stored.
- link to the [PLUGIN_DECOMPOSITION_R2] dependency diagram where all modules and their dependencies are described and add information about their specific functionality.
- use the PLATFORM_STRUCTURE_R2 and explain what is happening with the module structure after a build.
- use the information from PLUGIN_MODULE_STRUCTURE_R0 - the design phase.
So the structure of the PLUGIN_MODULE_STRUCTURE document will be:
PLUGIN MODULE STRUCTURE |_Basic module structure |_Proto Project |__Structure |__How to make a new module |_Sophie Modules |__Diagram |__Functionality |__Built Structure |_Extension/Extension Points |__Description |__Usage |__Examples |_Shared Resources
Implementation
Testing
Comments
(Write comments for this or later revisions here.)