Analysis

Overview

  • The app plug-in is the main plug-in of Sophie 2.0.
  • It actually starts the application.
  • It is used in all editions of Sophie 2.0.
  • It is responsible for configuration reading and loading of other parts of the application.

Task requirements

  • Extract a module containing the startup code.
  • The module must be usable by all editions of Sophie 2.0 (loadable by OSGI)
  • Make sure that it is used in already defined Sophie 2.0 editions.
  • It should read configuration files.

Task result

The result of this task is source code.

Implementation idea

  • Make a new module containing the Main class.

PLUGIN_EDITIONS_STRUCTURE_R0
PLUGIN_EDITIONS_STRUCTURE_R1

How to demo

  • Show what's done during startup
  • Show how the plug-in is used in different editions.

Design

  • make a new module with name org.sophie2.launcher for example
  • it must have Main class which runs various editions depends on given command line arguments
  • the default edition must be the author edition

Implementation

  • the launcher module was created
  • the bundles.config files were created for the author and the server editions. They contain the bundles to be loaded by the Felix Framework. If you add a bundle you should also add it in the config file for its edition.
  • The TrueAuthorMain run configuration was edited. It runs the Author edition using Felix and the launcher module. There is also TrueServerMain launch configuration which should run the server(when it is configured properly).
  • the Activator class in the author was deleted while it is not needed anymore.
  • the Main class was edited and moved in main.view module and checkAssertions method was added in SystemTestBase class - 639

The launcher module and its Main class - 575.
Activator deleted, bundles.config added, pom.xml edited - 572.

Testing

Comments

Log

Analysis: Pap -done (20m)
Review: Peko - 4 OK
Design: Pav (done: 20m)
Review: 2 by Pap. The file is log4j.properties. I don't think we need an Activator. This module may just embed felix.
Implementation:
Testing: