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



  • 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 class in org.sophie2.launcher module, which takes an argument - the concrete edition, and launches it similar to the existent fake launchers.


How to demo

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


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 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 results should be described and linked here (from the wiki or the repository))



(Write comments for this or later revisions here.)