wiki:PLUGIN_MODULE_STRUCTURE_R0
Last modified 14 years ago Last modified on 10/24/08 16:32:42

Analysis

Overview

It must be described here the structure of the plug-in module. The module structure must be worked out. One module with this structure must be created as an example.

Task requirements

Requirements for the plug-in module structure:

  • Each plug-in module should declare one or more extensions. They add functionality to extension points defined in other modules.
  • Plug-in may also declare extension points. These are places that allow adding functionality to the developed plug-in.
  • Plug-in must have:
    • source code
    • tests( unit, integration)
    • configuration files
    • build files
    • compiled code.
  • It may also have:
    • resources
    • external libraries.
    • temporary files and folders
  • Give examples

Task Result

  • The project in the repository must be structured into one module which is created with the given structure.
  • Module structure documentation.

Implementation idea

  • Structure the repository into one module - the messy module.

PLUGIN_DECOMPOSITION_R0

How to demo

  • Open the repository.
  • There must be at least one module with required structure.
  • The project must run.
  • Explain to the audience and answer if there are any questions.

Design

  • There is a pom.xml file at the top level of the project. Creating new module you should add its path to modules section in this pom.
  • The modules will be in the directory modules/ which is also at the top level of the project.
  • Each module for example org.sophie2.author with path modules/org.sophie2.author consists of:
    • src/
      • src/main/java -> Application/Library sources
      • src/main/resources -> Application/Library resources
      • src/test/java -> Test sources
      • src/test/resources -> Test resources
    • target/
      • target/classes where .class files are.
      • the directory must be ignored from svn(use command svn:ignore in Team section in Eclipse when it is created by Maven)
    • file pom.xml
    • .settings/ for eclipse configuration files.
  • In Eclipse each module is imported as Maven Project so the modules are structured into projects.
  • Important tips for pom.xml:
    • each module's packaging is set to bundle
    • all required libraries for the module are in the <dependencies> section
    • The <instructions> section are configurations used by Felix Framework and are unique for each module. (To integrate Maven with Felix we use maven bundle plug-in. Visit http://felix.apache.org/site/maven-bundle-plugin-bnd.html for more info)

Implementation

core module

base module

messy module

dialogs module

modularity module

author module

Testing

Log

  • Analyzing : Pap - done (2h) - Tanya 40 min refactor
    • Review: 1 by Tanya. The analysis is incorrect.
  • Analyzing 2: Pav (done: 20 mins)
    • Review: 3.5 by Tanya. - 30min (review + refactor)
  • Designing : Tanya & Pavlina - 1h
  • Implementing : Pavlina - 3d
    • Review : Peko - 4 - OK - 15 mins
  • Testing :