wiki:APP_PLUGIN_STARTUP_R1
Last modified 14 years ago Last modified on 01/10/09 11:13:58

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=APP_PLUGIN_STARTUP_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

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

In this revision we must make the launcher module more useful. This includes:

  • Merging JavaWebStartMain and Main classes in the org.sophie2.launcher module. Currently, there are 2 main classes - the JWS and the original one. JavaWebStartMain is a slightly modified version of Main, so it would be no difficulty to merge the 2 files. A little research is needed here (see Related - it could be helpful).
  • Centralizing the Fake launchers (FakeAuthor and FakeServer). The 2 editions now have separate Fake launchers, which could be merged into one. See implementation idea.
  • Decide if it is a good idea to put the FRAMEWORK_SYSTEMPACKAGES from org.sophie2.launcher.Main in a separate file - this way the code will look better.

Task result

Source code.

Implementation idea

Create a FakeMain.java class in org.sophie2.launcher module, which takes an argument - the concrete edition, and launches it similar to the existent fake launchers.

APP_PLUGIN_STARTUP_R0
PLATFORM_DEPLOYMENT_TARGET_JWS_R0

How to demo

  • Launch the FakeAuthor and FakeServer configurations
  • Launch the TrueAuthor, TrueServer and JWS configurations.

Design

Merging JavaWebStartMain and Main:

  • find the differences between the two files
    • the only difference is in the argument reading and the bundes string building.
  • an argument must be given in order the method to decide what to do.
  • the .jnlp must be reconfigured to run the new Main method with an appropriate argument
  • the TrueAuthor and TrueServer configurations must be reconfigured.

Merging FakeAuthorMain and FakeServerMain:

  • create FakeMain.java in org.sophie2.launcher. It will have the same structure as FakeAuthorMain and FakeServerMain; the body of main() will read the Args[0] parameter and according to it will decide which arguments to pass to the FakeModuleRegistry.start() method. Possible values of the argument: "Author" / "Server"
  • Change the main classes in the corresponding launch configurations.
  • Delete the old launchers, since they are not needed anymore.

In the org.sophie2.launcher.Main:

  • Replace the huge string with a text file and put it into the resources directory (select its name first).

In the org.sophie2.launcher.FakeMain:

  • add a check for assertions enabled, like in org.sophie2.launcher.Main
  • add a logger initializing
    • think out for the log4j configuration files.

Implementation

(Implementation results should be described and linked here (from the wiki or the repository))

Testing

Comments

(Write comments for this or later revisions here.)