wiki:PLATFORM_STRUCTURE_R1
Last modified 3 years ago Last modified on 12/04/08 18:56:01

#5

Analysis

Overview

The goal of this task is to make the structure of the source files, resources, modules etc. There are two kinds - development structure and runtime structure.

Task requirements

Update PLATFORM_STRUCTURE:

  • revise the current structure and add what is needed
  • describe the runtime structure in a new section in the document(for example: runtime structure section)
  • arrange the document

Task result

Updated PLATFORM_STRUCTURE.

Implementation idea

Build the project using 'mvn clean install' and describe the structure in 'target' dir.

PLATFORM_STRUCTURE_R0
PLATFORM_STRUCTURE
PLUGIN_EDITIONS_STRUCTURE

How to demo

Show the updated wiki page.

Design

There must be 2 main paragraphs in the updated document: Development Structure and Runtime Structure.

  • Development: describe what you see in the "trunk/sophie2-platform" directory, without the "target" dir.
    • Use the current PLATFORM_STRUCTURE document for folders descriptions;
    • Changes: "old" dir is added(contains older version of Sophie); "dev-tools" contains eclipse templates, too(and a "proto-project", which contains prototype of a module); "main" is located in "src" in each module, not in the module root.
    • Align the folder names and their descriptions, so they can be more readable. Using tables may be a good idea.
  • Runtime: use "mvn clean install" to build the project, then describe what you see in each module's "target" dir.
    • Form the outline as in the previous paragraph.
    • dirs:
      • classes: contains META_INF(manifest file); the contents of /src/main/resources; the compiled classes;
      • test-classes: compiled content of /src/test
      • distrib: contains all needed files that are going to be created on the user's machine in order to have completely functional project.
    • the .jar files are also here;
  • Runtime section will look this way:

Runtime Structure

  • For each module when built with maven a target folder is created, which has the following structure
target/ contains the .jar files, which are packaged fully-functional modules (without the tests)
target/classes
target/classes/META_INFcontains meta information that is needed for the .jar file to be executed
target/classes/org/sophie2/[module_name]contains the compiled source classes
target/classes/[contents of /src/main/resources]contains needed resources
target/test-classesincludes copies of the compiled tests
target/distribcontains the files that will be copied on the user's machine during the setup process and will be enough for the project to be completely functional

Implementation

  • Created table structure for PLATFORM_STRUCTURE
  • Applied the design part: created Runtime Structure section and rearranged Development Structure section
  • Also added things that were listed in the design review

Testing

Comments

Log

Analysis:
Design:
Implementation:
Testing:
Comments: