E4/position papers/Christian Campo
Position Paper: Christian Campo
There a number of topics that I'd like to be addressed in E4 that are driven by the Riena requirements in the following areas
- Development of plugins
- client/server split
- Serverside Eclipse
- Different UI
Development of plugins
I see a strong need to improve the API (as others have expressed). Can we start to remove duplicate and triple implementations of the same thing ? Preferences is the best example of that but there are others. Can we have some best practise, rules of which is the "right" implementation ? And most important, can we deprecate all the others and have a plan by when deprecatation will lead to removal ?
Use more OSGi Services instead of Singletons. Synchronize the way we use (=API) extensions and services. Currently everyone seems to have a strong opinion that one is better than the other. I think Extensions can and should be mapped to Java Objects so that they can be injected into any component without deeper knowledge about the platform. Once you have injection for extensions its is only a small difference whether you inject a service or an extension. i.e. Inject.service("FooService").into(myComponent).andStart(context); // inject instance of service Inject.extension("extpoint").useType(IData.class).into(myComponent).andStart(contenxt); // inject instances of extensions @see http://wiki.eclipse.org/Riena_Getting_Started_with_injecting_services_and_extensions
That allows us to free business code from container dependant code. So business components get things inject and dont have to deal with container specific accessors. Ease testing and so on.
RAW while cutting components, consider that they are deployed in various ways concerning client and server split i.e. Reporting components can be deployed on client or server platform should support this
stronger support for serverside eclipse running in a war build war containers run war container inside IDE context issue embedded versus war deployment
different UI open RCP for different UIs than Workbench layout RCP apps should not look like IDE RCP are for endusers