divide and conquer eclipse rcp und spring in verteilten anwendungen stefan reichert | lufthansa...
TRANSCRIPT
Divide and Conquer
Eclipse RCP und Spring in verteilten Anwendungen
Stefan Reichert | Lufthansa SystemsBenjamin Pasero | IBM Rational
Benjamin PaseroIBM [email protected]
Stefan ReichertLufthansa [email protected]
AgendaHello World
Views & Viewer
10:15 - 10:45 Kaffeepause
Extensions und Extension Points
12:50 - 14:00 Mittagspause
RCP und Spring – Teil 1
15:00 - 15:30 Kaffeepause
RCP und Spring – Teil 2
Offene Fragen / FAQ
16:30 Ende
EquinoxSWT
JFace
Workspace(Optional)
Update(Optional)
Text(Optional)
IDEText Compare Debug Search
Team/CVS
IDE
JDTPDEOther Tools(CDT etc.)
OwnApplication
Help(Optional)
Java VM
Generic Workbench (UI)
Eclipse von ganz weit oben
EquionoxPlugins, Extension-Points,...
SWT / JFaceViewer, MVC,...
Generic WorkbenchViews, Editors,...
Other ComponentsUpdate, Help,...
RCP Komponenten
Installation Party
Eclipse 3.5.1 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 Points25 JDT Extension Points
Beispiele:org.eclipse.ui.actionSets - Menu und
Toolbarsorg.eclipse.ui.perspectives- Perspektivenorg.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 AnwendungenEclipse 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- http://bit.ly/eclipse-faq
- Recommended Eclipse Readings- http://bit.ly/eclipse-readings
- Eclipse SWT Snippets- http://www.eclipse.org/swt/snippets/
Downloads & Sourcecode
http://bit.ly/wjax-rcp-spring
Oder auch:
http://code.google.com/p/rcpspringdivideconquer/
Vielen Dank!
Feedback nicht vergessen