wiki:PLUGIN_DECOMPOSITION_R0

Version 21 (modified by peko, 17 years ago) (diff)

--

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, boot.properties file

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 which runs using Apache Felix library.

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
    • base
    • core
    • messy
    • base.dialogs
    • core.modularity
  • 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 :