[[BackLinksMenu]] = Analysis = == Overview == We should define a new set of plug-ins, which is packed and combined to construct the Reader part of Sophie2 Project (there are three main parts - the Author, the Reader and the Server). Keep in mind that a plug-in which is part of the Author may also be part of the Reader. == Task requirements == In this revision of the task: * we should create Reader edition of Sophie 2.0 which * there should be difference between author and reader edition (at least one plug-in) * the project should run through a real OSGI container, not through our fake one * we should update [wiki:PLUGIN_EDITIONS_STRUCTURE] page == Task result == New Reader edition for the project Updated [wiki:PLUGIN_EDITIONS_STRUCTURE] page == Implementation idea == * use [wiki:PLUGIN_EDITIONS_STRUCTURE] to make new Reader edition * get into the OSGI implementation Apache Felix we use reading some examples: http://felix.apache.org/site/apache-felix-application-demonstration.html == Related == [wiki:PLUGIN_EDITIONS_STRUCTURE_R0] [wiki:PLUGIN_MODULE_STRUCTURE_R0] [wiki:APP_PLUGIN_STARTUP_R0] [wiki:PLUGIN_SUPPORT_LIB] == How to demo == Show the new edition in the project. = Design = * Look at [wiki:PLUGIN_EDITIONS_STRUCTURE] * The reader and author differ in: * PAGE_WORK_AREA * Create a Server edition containing: * Results from S2S_ tasks in this iteration * non-GUI modules * plug-in that embeds an application server * Running using OSGI * Using service based application hosting(embedding) Felix. * Correct the paths to other plug-ins that should be automatically started in Author/Reader Activator class * Fix exported libraries in org.sophie2.author.Activator.main * Move Main class and org.sophie2.messy.base.GUI package in messy package * Add new run configuration * Fix !SophieModule in order to register/unregister OSGI services * Write a method that collects available modules and adds them to the auto-loaded ones. * Searcing in the /modules catalog in deployed application * Searching in /modules//target in the project * Create a maven goal, that makes the distribution(deployment) of the project. This could be achieved through the assembly maven plug-in = Implementation = The task was timeboxed so only the part about running using Apache Felix was done. * A new launch configuration was added [source:trunk/sophie2-platform/dev-tools/author.TrueAuthorMain.launch]. It runs the application using Apache Felix. * The main method of the Activator class of the author module was refactored: * Added runtime libraries to the exported classpath * Corrected the paths to the initially loaded bundles * Added new modules to the initially loaded bundles * Corrected the start method of the !SophieModule class in order to correctly process extensions and extension points * Added a start method to the !SophieExtensionPoint class that is used to manage the extensions available for each extension point * Corrected the instruction in pom.xml files of all modules. * Corrected packging of some modules. * Moved Main class and base.gui package inside the messy package so that they are available in the resulting bundle. * cglib posed a serious issue so it is temporally disabled. This concerns all logics. * changed all concrete logics' constructors visibility to public * removed an assertion in Logic contructor * disabled cglib usage in makeInstance method of Logic class = Testing = = Comments = = Log = [[Include(PLUGIN_EDITIONS_STRUCTURE_R1_LOG)]]