wiki:PLUGIN_DECOMPOSITION_R0

Version 14 (modified by pavlina, 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 JPF 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 JPF library in the project so it can run through JPF 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
  • Maven JPF Plugin

How to demo

Show the project with the new plug-ins which runs using JPF 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 new run configuration to run the project using JPF
  • make boot.properties file.

Implementation

  • The project was decomposed in six modules:
    • author
    • base
    • core
    • messy
    • base.dialogs
    • 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 the project was built with Maven and was executed with the created jar.

The decomposed modules in repository

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 :