wiki:PLUGIN_DECOMPOSITION_R0
Last modified 14 years ago Last modified on 10/04/08 15:17:44

Analysis

Overview

Decomposition to plug-ins of Sophie 2 is one of the most important things to do for the project. There should be base modules and integration of the existing code with Apache Felix library. Keep in mind that modules and plug-ins are the same thing in this case.

Task requirements

  • think about initial plug-in decomposition
    • decompose to base modules and in which each class goes
    • integrate the Apache Felix library in the project so it can run through Apache Felix which activate the current plug-ins

Task result

New project structure. The project must run.

Implementation idea

  • make base and core modules, other things can remain in messy module
  • make new run configuration using Run configuration option in Eclipse.

Use:

  • componentDiagram.vpp
  • work breakdown structure file to decompose the modules

How to demo

Show the project with the new plug-ins.

Design

  • decompose the project in three modules (now we have only messy module which is not plug-in)
    • base
    • core
    • messy
  • see componentDiagram.vpp (Revision 17)
  • see work breakdown structure file
  • use the gathered information to allocate the classes to the modules
  • make boot.properties file.

Implementation

  • The project was decomposed in six modules:
    • author - module dependencies: messy
    • base - module dependencies: core
    • core - module dependencies: none
    • messy - module dependencies: core, base, base.dialogs
    • base.dialogs - module dependencies: core, core.modularity
    • core.modularity - dependencies: core
  • We decide to use Felix(OSGi implementation) instead of JPF because the difficulties during integration of the source with JPF. That's why the implementation has differences with the design phase. See http://felix.apache.org/site/documentation.html for more info.
  • The project has fake launch now which don't run the plug-in framework.
  • Felix runs when executing the Maven built jar. Implementation for this is the Activator class.

The decomposed modules in repository.

Activator source code

Testing

Log

  • Analyzing : Deyan, Pacitu - 45 min
  • Analyzing Refactor : Pavlina - 45 mins
    • Review: 3.5 by Tanya - 30 min
  • Designing : Pavlina - 60 mins
    • Review: 3 by Tanya - 10 min
  • Implementing : Pavlina - 7d
    • Review : Peko - 4 - 10 mins 3.5 because of the fast switching from JPF to Apache Felix
  • Testing :