divide and conquer eclipse rcp und spring in verteilten anwendungen stefan reichert | lufthansa...

23
Divide and Conquer Eclipse RCP und Spring in verteilten Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Upload: johan-landherr

Post on 05-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Divide and Conquer

Eclipse RCP und Spring in verteilten Anwendungen

Stefan Reichert | Lufthansa SystemsBenjamin Pasero | IBM Rational

Page 2: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Benjamin PaseroIBM [email protected]

Stefan ReichertLufthansa [email protected]

Page 3: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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

Page 4: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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

Page 5: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

EquionoxPlugins, Extension-Points,...

SWT / JFaceViewer, MVC,...

Generic WorkbenchViews, Editors,...

Other ComponentsUpdate, Help,...

RCP Komponenten

Page 6: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Installation Party

Eclipse 3.5.1 SDK

Page 7: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Hands

On

RCP Hello World

Page 8: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Extension Points und Extensions

Page 9: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Interface: deklarativ (plugin.xml / MANIFEST.MF)

Verhalten: imperativ (Java Klassen)

Plug-ins in Eclipse

Page 10: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

- 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)

Page 11: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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)

Page 12: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

- Definiert in der plugin.xml- Verwendung eines Extension Points- Jedes Plug-in kann mehrere Extensions

verwenden

Extensions

Page 13: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Hands

On

Extension Points

Page 14: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Verteilte AnwendungenEclipse RCP & Spring

Page 15: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Komponenten Eclipse RCP (UI)

– Oberflächen– Aufbereitung von Informationen– Spring Container

Java EE (Backend)– Servlet & Geschäftslogik– Spring Container

Kommunikation Spring HTTPInvoker

Page 16: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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

Page 17: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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

Page 18: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Spring Container Server

• Spring Core– Jar Datei– Container lebt im Servlet-Container des

Servers (ContextLoaderListener)– Konfiguration im Web-Descriptor

(web.xml)

Page 19: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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.

Page 20: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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

Page 21: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

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/

Page 22: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Downloads & Sourcecode

http://bit.ly/wjax-rcp-spring

Oder auch:

http://code.google.com/p/rcpspringdivideconquer/

Page 23: Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational

Vielen Dank!

Feedback nicht vergessen