wiki:PLUGIN_MODULE_STRUCTURE_R1
Last modified 16 years ago Last modified on 01/16/09 16:07:03

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=PLUGIN_MODULE_STRUCTURE_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

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

PLUGIN_MODULE_STRUCTURE

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.*/.settingsproject settings configurations for Eclipse. They must be synchronized with the sophie2-platform project settings
/trunk/sophie2-platform/modules/org.sophie2.*/targetcontains compiled classes
/trunk/sophie2-platform/modules/org.sophie2.*/srccontains sources and configuration files
/trunk/sophie2-platform/modules/org.sophie2.*/src/test/javacontains unit tests
/trunk/sophie2-platform/modules/org.sophie2.*/src/test/resourcescontains 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/resourcescontains the resources which the module uses
/trunk/sophie2-platform/modules/org.sophie2.*/src/main/resources/distribeach 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/sophie2contains application sources

except author module, which doesn't need test section.

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

PLUGIN_MODULE_STRUCTURE

Testing

Comments

(Write comments for this or later revisions here.)