From: Carcassi, G. <car...@bn...> - 2012-12-29 16:19:20
|
Hi, I broke up pvmanager into independent modules, and now I am trying to understand how to best include it into CSS. In theory, it'd be good to separate the CSS dependent part with the "external library part", and naming "org.epics.pvmanager..." all the plugins that simply import external code while naming "org.csstudio.utility.pvmanager..." all the ones that actually implement CSS specific thing (like extensions points...). The prob is that, for the core library, this is not possible (or at least, I don't know how to do it) because the configuration of pvManager has to happen before any access to the library, so the activator has to be in the same plugin. The other parts (i.e. the datasources) can be factored out into two plugins (say org.epics.pvmanager.jca for the external code and org.csstudio.utility.pvmanager.jca for the extension point). Is this worth it? So, I have the following options: 1) Use org.csstudio only. Have the following plugins: org.csstudio.utility.pvmanager org.csstudio.utility.pvmanager.vtype org.csstudio.utility.pvmanager.ca org.csstudio.utility.pvmanager.pva org.csstudio.utility.pvmanager.sim org.csstudio.utility.pvmanager.loc The code will be distributed into the appropriate plugin, and will contain both "external code" and "CSS code" (activators, extension points, help, ...) 2) Use org.epics only. Have the name of the plugins map exactly the code one will be using in CSS: org.epics.pvmanager org.epics.pvmanager.vtype org.epics.pvmanager.ca ... The upside is that these are the package names one will use. The downside is that these will also contain CSS code, and so it's confusing because (given the name of the package) one would not expect it to be there. 3) Double plugins. Try to separate as much as possible the pieces that can be separated. This may be more "clear", but it seems more work for me and for the people who have to package the product... I am not crazy about any of these options. I think I am leaning toward option 1 simply because it's less disruptive. If anybody has a reason to prefer one of the other, let me know. Gabriele |