Eclipse Plug-In Entwicklung mit Java und Progress

Werbung
Eclipse Plug-In Entwicklung mit Java und
Progress 4GL
Mike Fechner
PUG JHV 2006
10. Mai 2006, Frankfurt a.M.
Agenda
• Shorthand Syntax dyn. Datenzugriff
•
•
•
•
External Tools
Eclipse Plug-Ins
Progress 4GL Plug-Ins
Java Plug-In Entwicklung
Eclipse Plugin Entwicklung mit Java und Progress 4GL
2
Shorthand Syntax dyn. Datenzugriff
• hProDataset::Tabelle::Feld
• hBuffer::Feldname
• z.B.: phRowObjUpd::RowMod in assignDBRow
• alternativ: hProDataset:GET-BUFFERHANDLE(„Tabelle“):BUFFERFIELD(„Feldname):BUFFER-VALUE
• hTempTable:DEFAULT-BUFFERHANDLE:BUFFER-FIELD(„FeldName“):BUFFERVALUE
Eclipse Plugin Entwicklung mit Java und Progress 4GL
3
Shorthand Syntax dyn. Datenzugriff
• hProDataset oder hBuffer müssen ein Handle
sein
• Tabelle, Buffer und Feld eine Konstante
• Evaluierung erfolgt zur Laufzeit
• BUFFER-VALUE kann ausgelesen werden und
gesetzt werden
• typisiert
Eclipse Plugin Entwicklung mit Java und Progress 4GL
4
Agenda
• Shorthand Syntax dyn. Datenzugriff
•
•
•
•
External Tools
Eclipse Plug-Ins
Progress 4GL Plug-Ins
Java Plug-In Entwicklung
Eclipse Plugin Entwicklung mit Java und Progress 4GL
5
External Tools
• einfache Möglichkeit Eclipse durch eigene
Funktionalität zu erweitern (ohne Code)
•
•
•
•
externe Compiler
externe Editoren
Systemtools (z.B. Dienste)
Progress Tools (Progress Explorer, Promon)
• Kontext zur aktuell bearbeiteten Resource
möglich
• selektiver Refresh der Workspaces nach
Ausführung möglich
• Eclipse Konsole kann verbunden werden
Eclipse Plugin Entwicklung mit Java und Progress 4GL
6
External Tools
• Umgebungsvariablen für Zugriff auf Tool,
Arbeitsverzeichnis, Umgebungsvariablen
•
•
•
•
•
Workspace Root
Projektroot
Absoluter/relativer Pfad zur aktuellen Resource
Dateiname
...
• Resource: Aktuell ausgewählte Datei
• abgelegt in Workspace oder .launch Datei
(Team-fähigkeit)
Eclipse Plugin Entwicklung mit Java und Progress 4GL
7
Demonstration
• Erzeugen von .xsd (XML Schema Definition) aus
ProDataset Definition
• Erzeugen einer C# Klasse für .xsd File
Eclipse Plugin Entwicklung mit Java und Progress 4GL
8
Agenda
• Shorthand Syntax dyn. Datenzugriff
•
•
•
•
External Tools
Eclipse Plug-Ins
Progress 4GL Plug-Ins
Java Plug-In Entwicklung
Eclipse Plugin Entwicklung mit Java und Progress 4GL
9
Eclipse Plug-Ins
• Plug-Ins erweitern die Funktionalität von
Eclipse
• Plug-Ins erweitern die Funktionalität
anderer Plug-Ins
• Elementarer Bestandteil der Architektur
Eclipse Plugin Entwicklung mit Java und Progress 4GL
10
Eclipse Architektur
• Eclipse läuft in Java JRE (javaw.exe)
Plug-In Development Environment (PDE)
Java Development Tools (JDT)
Eclipse Plattform
Eclipse Plugin Entwicklung mit Java und Progress 4GL
11
Eclipse Plattform
• Laufzeit Umgebung
• Plug-In Infrastruktur (Erweiterungspunkte)
• Laden der Plug-Ins beim Start
• Workspace
• Projekte
• Konfiguration im Dateisystem, Preferences
• Oberfläche
• SWT, Standard Widget Toolkit
• Workbench
• Editoren, Views, Perspektiven
Eclipse Plugin Entwicklung mit Java und Progress 4GL
12
Plug-Ins
• Java Klasse(n), erweitern Funktionalität
• Manifest plugin.xml definiert
• Abhängigkeiten und Erweiterungspunkte
• Runtime Konfiguration (.jar Files, exports)
• Plug-In Klasse
• Typischer Weise werden Views oder Action
Erweiterungen definiert
Eclipse Plugin Entwicklung mit Java und Progress 4GL
13
Erweitertungspunkte
• Plug-Ins definieren Erweitertungspunkte
(Extension Points)
• bereitstellen
• nutzen = erweitern
• API und Interfaces für Extension Points
• z.B. Aktionen (Action contributions)
• Buttons oder Kontext-Menüeinträge in
Standardelementen (Resource View, Toolbar, Menüs,
…)
• z.B. Dateierweitertungen für
Dateiauswahldialoge
Eclipse Plugin Entwicklung mit Java und Progress 4GL
14
Features
• „Verpacken“ einer Menge an Plug-Ins
• Branding
• About Box
• Primäres Feature (z.B. OpenEdge Architect)
• Schlüssel zum Update-Manager
• Abhängigkeiten zu anderen Features
• Bietet, Benötigt
• Versionsangaben
• mindestens
• genau
• gleichwertig
Eclipse Plugin Entwicklung mit Java und Progress 4GL
15
Agenda
• Shorthand Syntax dyn. Datenzugriff
•
•
•
•
External Tools
Eclipse Plug-Ins
Progress 4GL Plug-Ins
Java Plug-In Entwicklung
Eclipse Plugin Entwicklung mit Java und Progress 4GL
16
Progress 4GL Plug-Ins
• OpenEdge Architect nutzt eine 4GL Sitzung im
Hintergrund, die beim Öffnen eines 4GL
Projektes automatisch gestartet wird
• Einbindung der 4GL Tools in Eclipse basiert auf
• Socket-Kommunikation zwischen OpenEdge Runtime
• Einem OpenEdge Runtime View, dass 4GL Windows
hostet oder einbindet
• oeideservice.p
• Basis für eigene Komponenten im OpenEdge
Architect
Eclipse Plugin Entwicklung mit Java und Progress 4GL
17
Progress 4GL Plug-Ins
•
•
•
•
einfache Implementierung
reine 4GL Lösung
beliebige Anzahl von eigenen Views
_idestartup.p wird beim Start der OE Architect
aufgerufen
• Laden eigener Windows als persistent
Procedures, z.B. beim Start
• PROCEDURE ADEPersistent
Eclipse Plugin Entwicklung mit Java und Progress 4GL
18
Progress 4GL Plug-Ins
•
•
•
•
einfache Implementierung
reine 4GL Lösung
beliebige Anzahl von eigenen Views
_idestartup.p wird beim Start der OE Architect
aufgerufen
• Laden eigener Windows als persistent
Procedures, z.B. beim Start
• PROCEDURE ADEPersistent
Eclipse Plugin Entwicklung mit Java und Progress 4GL
19
Progress 4GL Plug-Ins, Anwendung
•
•
•
•
Session Information (z.B. Persistent Procedures)
Application Compiler, Build Tools
Code-Generatoren
Einbindung bestehender Tools, z.B.
Administration
• Progress Dynamics...
Eclipse Plugin Entwicklung mit Java und Progress 4GL
20
Progress 4GL Plug-Ins, Nachteile
• Message-Statements, lange Schleifen, etc.
blockieren Kommunikation zwischen Eclipse und
OE Runtime
• Öffnen von Views geschieht aus 4GL und nicht
der eigentlichen Oberfläche
• begrenzter Zugriff auf das Eclipse Framework
• Resizing unbefriedigend
• inkonsistente Optik zu SWT basierenden
Controls
Eclipse Plugin Entwicklung mit Java und Progress 4GL
21
Progress 4GL Plug-Ins, Demonstration
• Persistent Procedure Viewer
• Internal Procedures
• Progress API zum Einbetten von Fenstern
Eclipse Plugin Entwicklung mit Java und Progress 4GL
22
Agenda
• Shorthand Syntax dyn. Datenzugriff
•
•
•
•
External Tools
Eclipse Plug-Ins
Progress 4GL Plug-Ins
Java Plug-In Entwicklung
Eclipse Plugin Entwicklung mit Java und Progress 4GL
23
Java Plug-Ins
• Basis für die Plug-In Entwicklung sind die JDT:
Java Development Tools
• PDE, Plug-In Development Environment
•
•
•
•
•
•
Wizzards für Plugins
Templates (Views, Listen, Trees, Editoren)
Templates, Wizzards für Actions
Abhängigkeiten zu Plug-Ins definieren
Dialog für Build Konfiguration und Manifest File
Wizzards zum Exportieren (Build)
• Oberflächendesign mit open source SWT
(Standard Widget Toolkit)
Eclipse Plugin Entwicklung mit Java und Progress 4GL
24
Java Plug-Ins
• 1 Projekt pro Plugin
• Testumgebung für Plug-Ins
• Start einer Eclipse Umgebung zum Test
• Java Debugger für Plug-Ins
• Debuggen in Eclipse Umgebung
• Weitere Wizzards, Templates
• Features
• Download Sites
Eclipse Plugin Entwicklung mit Java und Progress 4GL
25
Java Plug-Ins für OE Architect
• Kommunikation mit OpenEdge Runtime
• Netzwerk Socket (text, xml, soap)
• SonicMQ
• bestehende Runtime oder separate für Multi-Threading
• Kommunikation mit OpenEdge AppServer
•
•
•
•
AppServer Proxy
Web Services
Sonic ESB
WebSpeed
Eclipse Plugin Entwicklung mit Java und Progress 4GL
26
Java Plug-Ins, Demonstration
• Session Properties View
• Netzwerk-Kommunikation zwischen Eclipse View
und OpenEdge Runtime
Eclipse Plugin Entwicklung mit Java und Progress 4GL
27
Herunterladen