Runtime Surgery New ways to integrate softwarecomponents with eclipse equinox Tobias Jenkner (edmPRO)
Surgery - who are the patients ●Eclipse Runtime – equinox ●Osgi: Reuse existing software components ➔Patients: existing osgi bundles we want to reuse
Reuse bundles: Customize Plugin to be reused Java and OSGI access restrictions InitializationCustomize No public interface Plugin to be reused Java and OSGI access restrictions Security
Reuse bundles: Separation of concerns Client Common Server Log API RCP ... Menu-Entry Global UI Software-Updates Log impl RCP ... Change Window View 1 Title Log config RCP ... RCP View 1 View 2
Summary:Reuse bundles✗ Separation of concerns✗ Interfaces available➔ Write a component once run everywhere● Separation of concerns only in the context ofthe original development (A single OSGI Bundle contains GUI,configuration, business logic, …)● Customization not possible (API not available)● Write once break everywhere else
Use case summaryWeaving:●Customize and extend existing functionality(without API)●Suppress method callsTransforms:●Cleanup Menus / UIBoth:●Enforce integration specific codingguidelines. Forbid usage of available APIs (e.g.set window title).
Drawbacks●Equinox waeving: Coping with internals /breaking up information hidingDoing the job of the vendor / project●
ConclusionModify complete bundles at runtime:●Declarative XML●Java bytecode
What do you think?● Useful ?● Risk ?● Production ?● Responsibility ?● ...