[[BackLinksMenu]]

[[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|)]]



= 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.

== Related ==
[wiki:APP_PLUGIN_STARTUP_R0] [[BR]]
[wiki: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: [[BR]]
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. [[BR]]


= 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.)