Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational
Benjamin Pasero IBM Rational Stefan Reichert Lufthansa Systems
Agenda Hello World Views & Viewer 10: :45 Kaffeepause Extensions und Extension Points 12: :00 Mittagspause RCP und Spring – Teil 1 15: :30 Kaffeepause RCP und Spring – Teil 2 Offene Fragen / FAQ 16:30 Ende
EquinoxSWT JFace Workspace (Optional) Update (Optional) Text (Optional) IDE Text Compare DebugSearch Team/ CVS IDE JDTPDE Other Tools (CDT etc.) Own Application Help (Optional) Java VM Generic Workbench (UI) Eclipse von ganz weit oben
Equionox Plugins, Extension-Points,... SWT / JFace Viewer, MVC,... Generic Workbench Views, Editors,... Other Components Update, Help,... RCP Komponenten
Installation Party Eclipse SDK
Hands On RCP Hello World
Extension Points und Extensions
Interface: deklarativ (plugin.xml / MANIFEST.MF) Verhalten: imperativ (Java Klassen) Plug-ins in Eclipse
- Interface für andere Plug-ins - Definiert in der plugin.xml - Ermöglicht lose Kopplung von Komponenten - Jedes Plug-in kann mehrere Extension Points anbieten Extension Points (1/2)
Eclipse Extension Points: 160 Plattform Extension Points 25 JDT Extension Points Beispiele: org.eclipse.ui.actionSets - Menu und Toolbars org.eclipse.ui.perspectives- Perspektiven org.eclipse.ui.popupMenus- Popup-Menus für Editors / Views Extension Points (2/2)
- Definiert in der plugin.xml - Verwendung eines Extension Points - Jedes Plug-in kann mehrere Extensions verwenden Extensions
Hands On Extension Points
Verteilte Anwendungen Eclipse RCP & Spring
Komponenten Eclipse RCP (UI) –Oberflächen –Aufbereitung von Informationen –Spring Container Java EE (Backend) –Servlet & Geschäftslogik –Spring Container Kommunikation Spring HTTPInvoker
Spring Leichtgewichtiges Framework – Orientierung auf Pojos – nur einfaches Java notwendig – Kein EJB-Container notwendig XML* basierte Konfiguration – Spring Beans – Dependency Injection (DI) – Inversion of Control (IoC) *Spring lässt auch eine Konfiguration mittels Annotationen zu
Spring Container Client Spring Dynamic Modules (Spring DM) – Fertige Komponenten verfügbar – Container lebt im OSGi-Bus – Automatische Lokalisierung von Konfigurationen in verfügbaren Bundles – Schnittstelle zum OSGi-Bus
Spring Container Server Spring Core – Jar Datei – Container lebt im Servlet-Container des Servers (ContextLoaderListener) – Konfiguration im Web-Descriptor (web.xml)
Kommunikation HTTP Protokoll Client = Stub, Server = Skeleton – Jeweils ein Proxy für eine Spring Bean – Objektserialisierung – Transparente Kommunikation Volle Funktionalität des Servlet Containers nutzbar – HTTPS – Servlet Filter – Piggy-Backing (HTTP Header) – etc.
Bücher Tipps -Eclipse RCP im Unternehmenseinsatz -Stefan Reichert, dpunkt.verlag -Eclipse RCP: Designing, Coding, and Packaging Java Applications -Jeff McAffer et al, Addison Wesley
Links - The Official Eclipse FAQs - -Recommended Eclipse Readings - -Eclipse SWT Snippets -
Downloads & Sourcecode Oder auch: /p/rcpspringdivideconquer/
Vielen Dank! Feedback nicht vergessen