Eclipse Plug-ins. Michael Perscheid Seminar System Modeling 2005 Hasso-Plattner-Institute for Software Systems Engineering

Größe: px
Ab Seite anzeigen:

Download "Eclipse Plug-ins. Michael Perscheid Seminar System Modeling 2005 Hasso-Plattner-Institute for Software Systems Engineering"

Transkript

1 Eclipse Plug-ins Michael Perscheid Seminar System Modeling 2005 Hasso-Plattner-Institute for Software Systems Engineering Übersicht Dieses Dokument beschäftigt sich mit den Konzepten und Technologien von Eclipse Plug-ins. Es wird gezeigt, wie man Eclipse erweitert und wie sich Plug-ins strukturell aufbauen. Anschließend wird auf die einzelnen Komponenten und Technologien eingegangen, um deren Verbindung zum Gesamtaufbau darzulegen. Am Ende wird anhand des JDT (Java Development Tool) die Einbettung von Plug-ins in Eclipse dargestellt. Schlüsselwörter: Eclipse Plug-in Architektur, Manifest, Extension Point, OSGi Framework, Java Development Tool 1. Einleitung Eclipse ist eine universelle Plattform, auf der alle möglichen Programme laufen können. Um dies zu realisieren, benötigt man Plug-ins und weitere wichtige Konzepte. Eclipse bietet grundsätzlich 3 Möglichkeiten es zu erweitern, daher sind die normalen Bibliotheken und Dokumentationen nur der Vollständigkeit halber genannt. Die wichtigste Möglichkeit ist das Konzept, dass die eigentliche Plattform mittels Plug-ins erweitert wird. Dabei gilt, dass Eclipse nahezu vollständig aus diesen aufgebaut ist. Die kleinste Einheit in Eclipse, welche separat ausgeführt werden kann, nennt man Plug-in. Es ist ein strukturiertes Bündel aus essourcen, welches die Möglichkeit bietet sich über festgelegte Schnittstellen in Eclipse einzuklinken. Auch gibt es die Möglichkeit, selbst solche Stellen zu schaffen und somit aus vielen kleinen Komponenten ein großes Ganzes zu schaffen. Dabei ist es wichtig zu beachten, dass die hierarchische Anordnung der Plug-ins und ihrer Schnittstellen nicht verletzt wird (keine Bildung von zyklischen Abhängigkeiten). Ebenso kann jedes Plug-in in Eclipse nur einmal gestartet werden, deshalb werden viele mittels des Singleton Pattern realisiert. Lazy loading bietet eine Möglichkeit um Grenzen bei der Menge an Plug-ins zu umgehen. Hierbei wird jeweils - erst beim wirklichen Bedarf - die eigentliche Komponente geladen. Dies wird einerseits mit der Bekanntmachung der Plug-ins, mittels ihres Manifests und andererseits mit dem OSGi-Framework realisiert. An dieser Stelle sei auf The Eclipse Platform (siehe [1]) verwiesen, welches zum besseren Verständnis von Eclipse und dessen Architektur beiträgt. 2. Problem Das Plug-in-Konzept ist ein mächtiges Werkzeug, um Eclipse zu nutzen und zu erweitern. Doch besteht deren Dokumentation meist nur aus Tutorials und vielen verstreuten Informationen. Diese Ausarbeitung soll helfen, die wichtigsten Informationen zu Plug-ins zusammenzustellen und dabei ihren Zusammenhang in das Gesamtkonzept zu verdeutlichen. Des Weiteren soll auch das Verständnis für eine abstrakte Vorstellung, für die Handhabung, sowie der Technologie von Plug-ins in Eclipse gestärkt werden. Im Inhalt wird sich jedoch keine Anleitung für die Entwicklung eines Plug-ins finden 1. Jedoch sei mir an einigen Stellen erlaubt, auf kleinere Tipps für den Umgang mit Plug-ins und der PDE 2 einzugehen. 1 Dieser Bedarf sollte von anderen Quellen mehr als gedeckt sein. (siehe [6]) 2 Plug-in Developer Environment

2 resources Feature icon library owns Manifest - name - id - version documentation consists of uses references to consists of Plug-In Fragment Extension Point Dependency Point Java Code 1 contains 0,1 has parent provides 3. Plug-in Architektur 3.1. Struktur p,e provides, p,m owns e,m references to p,e uses, p,m owns e,m references to p - Plug-in / Fragment e - Extension Point / Dependency Point m - Manifest Das Entity-elationship-Diagramm in Abbildung 1 verdeutlicht den grundlegenden Aufbau von Plug-ins. Dabei lässt sich dort leicht erkennen, dass es 3 Teilarten von Komponenten gibt. Das Feature besteht aus einem oder mehreren Plug-ins. Es ist damit die kleinste, herunterladbare und installierbare Einheit in Eclipse. Die Unterscheidung wird getroffen um, großen Projekten eine Abstraktion von Plug-ins zu geben und somit das Installieren von Komponenten zu erleichtern. Features spielen hier nur eine kleine olle und werden außerhalb von Eclipse gerne mit dem Begriff Plug-in gleichgesetzt. Das eigentliche Plug-in ist die Hauptkomponente in der Architektur. Es ist eine Kapselung von Verhalten und/oder Daten, welches dazu, dient mittels anderer Plug-ins ein lauffähiges Programm zu erschaffen. Sie besitzen jeweils genau ein Manifest, welches die Abbildung 1 Plug-in Struktur Grobstruktur des jeweiligen Plug-ins beschreibt. Zusätzlich können noch optional Java Code oder eine bzw. mehrere essourcen genutzt werden. Die letzte Komponente sind die so genannten Fragmente. Sie gelten als optionale Teile eines Plug-ins. Damit ist es möglich sie unabhängig vom Host-Plug-in zu installieren oder zu verändern. Sie besitzen daher auch genau die gleiche Struktur wie Plug-ins (d.h. ein Manifest, optional essourcen, Java Code). Im Gegensatz zu Plug-ins sind Fragmente nicht allein lauffähig, denn sie benötigen immer ein Host-Plug-in von dem sie auch die Abhängigkeiten erben und somit benutzen können. Es gilt, dass Fragmente von der untime logisch aber nicht physisch dem Host-Plug-In zugeordnet werden, d.h. auch das Plug-in selber sieht das Fragment als optional an und ist auch ohne ihn lauffähig. Aus diesem Grund werden sie gerne für Spracherweiterungen genutzt. Ein verbreiterter Missbrauch von Fragmenten findet beim Patchen von Plug-ins statt. Dabei nutzt man den Ladezyklus der untime aus und trägt das Fragment vor dem eigentlichen Laden des Plug-ins ein. Diese Praxis ist zwar sehr umstritten, allerdings bietet Eclipse im Moment

3 keine Alternative dafür Manifest Das Manifest beschreibt den groben Aufbau eines Plug-ins oder Fragments. Darin enthalten sind wenigstens der Name, die Version und eine eindeutige ID mit der die untime das Plug-in identifizieren kann. Ebenso findet man dort sämtliche Abhängigkeiten 3 die ein Plug-in benötigt oder benutzt. An dieser Stelle sei kurz auf die Formel unterhalb des Diagramms eingegangen. Sie bedeutet, dass es für jede Abhängigkeit im Plugin, sei es nun Bereitstellung oder Benutzung, eine eindeutige eferenz im Manifest von ihm geben muss. Sollte eine Abhängigkeit benutzt werden, welche nicht hier aufgelistet ist, so kann man sie auch nicht verwenden. Das Manifest basiert auf der XML- Technologie, wobei dies für die Entwickler zweitrangig ist, da Eclipse mit dem PDE einen sehr guten Editor bereitstellt. Dieser sollte auch unbedingt benutzt werden, da Fehler im Manifest die Ladbarkeit des eigenen und anderer Plug-ins gefährden. Zu beachten ist, dass die Manifestdatei plugin.xml bzw. fragment.xml heißen muss. Beispiel <?xml version="1.0" encoding="utf-8"?> <plugin id="de.myexample.eclipse" name="helloworld Plug-in" version="1.0.0" provider-name= Max Muster" class="de.myexample.eclipse.helloworldplugin"> An diesem Beispiel erkennt man, dass auch zusätzliche Einträge erlaubt sind und auch oft genutzt werden. Vor allem Dokumentation zu dem Plug-in wird meist erweiternd bereitgestellt. Sollte die Komponente Javacode bereitstellen, so muss natürlich auch eine Startklasse angegeben werden, welche wiederum eine Subklasse von org.eclipse.core.runtime.plugin sein muss, damit Eclipse den Einstiegspunkt finden kann. Der Sinn des Manifests liegt nun in der lazy loading Möglichkeit von Eclipse Lazy Loading Mit diesem Konzept ist es möglich, beliebig viele Plug-ins zu installieren, ohne einen Verlust von Performance zu haben. 3 Abhängigkeiten bestehen hier aus Dependencies und Extension Points Beim Start von Eclipse wird das Plug-in Verzeichnis (hier befinden sich alle installierten Plug-ins) gelesen, dabei werden alle Manifeste in die egistry geladen. Die Platzhalter geben nun Auskunft über Abhängigkeiten und stellen sozusagen einen Schatten (nur Plug-in Manifeste sind geladen aber der Code selbst noch nicht) aller möglichen Plug-ins dar. Nun gilt es, die notwendigen Core-Plug-ins zu laden. Diese stellen Kernfunktionalitäten bereit und müssen somit von Anfang an verfügbar sein. Alle anderen Non-Core-Plug-ins werden erst nach Bedarf geladen, d.h. wenn ihre Funktion benötigt wird. Dabei geht Eclipse in die egistry, schaut sich dort das Manifest des jeweiligen Plugins an und lädt gegebenenfalls untime- Abhängigkeiten. Als letzten Schritt startet die untime nun das Plug-in und lädt, falls notwendig, weitere Abhängigkeiten, wenn sie im Code auftreten Dependencies Mit Dependencies werden Verbindungen zu Funktionen anderer Plug-ins oder Funktionsbibliotheken beschrieben, welche ein Plug-in benötigt. Auch gibt es die Möglichkeit, eigene Klassen etc. nach außen zu öffnen. Bei den Dependencies unterscheidet Eclipse zwei Arten, welche sich nur im Lademechanismus unterscheiden. Normale Dependencies werden erst beim eigentlichen Bedarf im Sourcecode geladen. Für Entwickler heißt dies, dass man sie erst möglichst spät einbinden sollte. untime Dependencies unterscheiden sich im Gegensatz dazu in dem Punkt, dass sie immer bevor das Plug-in gestartet wird, geladen sein müssen. Dies sind also meist die Standardbibliotheken oder Core-Plug-ins. Da Dependencies auch im Manifest stehen müssen, unterscheidet man die Angebotsseite, welche ebenso bekannt gemacht werden muss, bevor das Plug-in geladen wird und die Nachfrageseite, welche sich in Normal und untime unterscheidet. Auch hier gilt wieder: Wenn Fehler im Manifest auftreten, kann man zwar sein Plug-in kompilieren aber nicht ausführen. Beispiel <runtime> <library name="eclipse.jar"> <export name="com.myexample.*"> </library> </runtime>

4 <requires> <import plugin="org.eclipse.core.*"/> </requires> Das Beispiel zeigt die Angabe mehrerer Dependency Points, wobei sowohl die Benutzung von runtime (library) und normalen Dependencies (requires, import) beschrieben wird, als auch die Bereitstellung des Plug-ins nach außen (export) Extension Points Dieses Kernkonzept bietet die Möglichkeit, sich bei anderen Plug-ins einzuklinken und sie somit zu erweitern. Dies ist also genau das Gegenteil der Dependencies, bei denen man auf bereitgestellte Funktionen von anderen Komponenten zurückgreift, um sie selbst zu nutzen. Extension Points bilden daher Schnittstellen, welche einen eindeutigen Namen besitzen und meist eine Kombination aus XML- Einträgen und einem Java-Interface sind. Ein Plug-in, welches solch einen Punkt erweitern will, muss also alle Spezifikationen die dieser bereitstellt ausfüllen, d.h. XML-Einträge spezifizieren und das Java-Interface implementieren. Dabei kann das Host-Plug-in selbst eine Default-Implementierung bereitstellen. In Abbildung 2 ist nun ein mögliches Klassendiagramm, welches diesen Zusammenhang ausdrückt dargestellt. Abbildung 2 UML Extension Point All diese Einträge müssen wiederum im Manifest stehen, damit Eclipse jederzeit weiß, wer welche Extension Points anbietet und wer welche erweitert. Intern wird dies über so genannte Querverweise (Crosslinks) realisiert. Da sie nun sehr groß und komplex werden können, lagert das PDE sie aus dem Manifest in eigene Schemata. Dadurch erhöht sich die Übersichtlichkeit und Entwicklern wird es leichter gemacht, sich in den Extension Points zurecht zu finden. In Eclipse stehen nun genau 3 Arten von Extension Points zur Verfügung: Bei der ersten Form stellt das Host-Plug-in ein Interface bereit, welches implementiert werden muss. Diese Implementierung wird dann vom Host-Plug-in gestartet und abgearbeitet (siehe auch ). Zum Beispiel Anwendungen allgemein; welche mittels Eclipse ausgeführt werden und somit nur IPlatformunnable implementieren müssen. Die zweite Art basiert nur auf XML-Einträgen, welche zur Erweiterung angegeben werden müssen. Das eigentlich Verhalten darauf ist im Host-Plug-in gekapselt und kann nur über die Spezifikationen verändert werden. Plug-ins, welche nur solche Extension Points nutzen, benötigen meist keinen eigenen Java Code, da sie alles über die XML-Einträge erklären. Beispiele hierfür sind Sprachpakete oder der Extension Point Ignore. Bei diesem jedoch, gibt man nur an, welche Dateiendungen das System Ignorieren soll. Die dritte und letzte Form ist eine Mischung aus Beidem. Dort realisiert ein Teil das Verhalten des Host-Plug-ins (XML-Einträge) und der andere die Implementierung des Interfaces. Bekannte Beispiele hierfür sind die SWT/JFace 4 Extension Points, dabei gibt man im Manifest an, wie Buttons, Menüs etc. auszusehen haben aber das eigentliche Verhalten wird dann über die Interfaceimplementierungen definiert. Da Eclipse, wie bereits erwähnt, nahezu nur aus Plug-ins aufgebaut ist, benötigt jede Erweiterung auch einen Extension Point an dem es sich an der entsprechenden Stelle in Eclipse einklinken kann. Die Tags im Manifest sehen auf Angebots- und Nachfrageseite sehr ähnlich aus. Eclipse kann dies nun aber über die Pfade entscheiden: So heißt ein relativer Pfad, das Plug-in bietet ein Extension Point an, wobei ein absoluter Pfad bedeutet, man möchte den Extension Point von einem anderen Plug-in nutzen. Für Entwickler sei jedoch erwähnt, dass diese Beschreibung sehr allgemein gehalten wurde und für die Entwicklung von Plug-ins ein ausführliches Studium der entsprechenden Extension Points nötig ist. 4 Eclipse GUI (siehe [1])

5 Host-Plug-in Implementation Die Implementierung von Host-Plug-ins muss einen Algorithmus bieten, mit dem man alle Erweiterungen an einem Extension Point abfassen kann, ohne jedes Mal neu zu kompilieren. Dieser ist in Abbildung 3 dargestellt. Um ihn zu verstehen ist ein Systemverständnis von Eclipse sehr wichtig, da beide sehr eng zusammenarbeiten. Connect to Platform egistry egistry: Choose Extension Point ead all extensions in a list no further extensions ead all elements from extension in a list No further elements Extension Point Handle Element Abbildung 3 Host-Plug-in Algorithmus Example egistry egistry egistry Element Element Extension Mit Hilfe des Beispiels soll das Zusammenwirken verständlicher werden. Eclipse befindet sich bereits in der Laufzeit, nun erfolgt vom Benutzer der Anstoß ein neues Plug-in zu laden. Daraufhin durchsucht die untime die egistry nach dem Manifest des zu ladenden Plug-ins. Stellt es an dieser Stelle eine Erweiterung zu einem bestehenden Extension Point fest, so wird der obige Algorithmus abgehandelt. Das Host-Plug-in verbindet sich anschließend ebenfalls mit der egistry (indirekt über die untime) und wählt den zu suchenden Extension Point aus. Daraufhin werden alle Erweiterungen, die an ihm anliegen, separat in eine Liste geladen, welche nun abgearbeitet wird. Aus jeder Erweiterung werden alle Elemente (XML- Einträge, Java Interface) herausgeholt und mit ihnen versucht umzugehen. Dabei ist bei den XML-Einträgen das Verhalten im Host-Plug-in beschrieben und bei den Java Interfaces wird versucht, mittels Java eflection, eine ausführbare Klasse zu erschaffen und sie auszuführen. Somit wird nun die komplette Erweiterung im Host- Plug-in abgehandelt. An dieser Stelle sei aus didaktischen Gründen noch kurz die Steckdosennotation erwähnt. In vielen Quellen[2],[5],[6] wird diese Notation verwendet, um das Konzept von Extension zu erläutern. Angebotene Extension Points werden dabei als Steckdosenleisten dargestellt in denen sich viele beliebige Plug-ins (Nachfrager) einklinken können und somit eine Erweiterung darstellen. Diese können selbst auch wieder neue Steckdosen anbieten usw Installation von Plug-ins Die einfachste Art Plug-ins zu installieren: Man kopiert sie einfach in den Ordner /eclipse/plugins/, welcher bei jedem Start von Eclipse komplett durchsucht wird und alle gefunden Manifeste lädt. Eine weitere Möglichkeit ist es, den Software Update Manager 5 zu nutzen, welcher unter Angabe einer UL ein gesamtes Feature herunterlädt und installiert. Zur Verwaltung von Plug-ins bietet Eclipse ebenso einen lokalen Browser 6 mit dem man sie aktivieren/deaktivieren kann. Für Entwickler seien hier noch kleine Tipps erwähnt, welche unter umständen hilfreich sein könnten. /workspace/.metadata/.log bietet reichhaltige Informationen über den Status von Eclipse. Eine Liste aller gefundenen Plug-ins findet man unter Help -> about eclipse platform -> Plug-in details und detaillierte Informationen zum Ladestatus einzelner Plug-ins erhält man durch das Anlegen eines neuen Plugin-Projekt mit dem PDE. In der neu geladenen Perspektive ist im Log-View einiges an Informationen enthalten. 4. OSGi 7 Framework Das OSGi-Framework[3] ist ein offener Standard für die Verwaltung von dynamischen Komponenten und eingebetteten Systemen. Da Eclipse genau diese Ansprüche stellt, bietet sich das Framework sehr gut als Implementierung an. Dazu ist allerdings noch zu sagen, dass die Umsetzung etwas vom Standard abweicht. Das OSGi-Framework sieht vor, dass Softwarekomponenten dynamisch installiert, 5 Help -> Software Updates -> Find and Install 6 Help -> Software Updates -> Manage Configuration 7 Open Services Gateway Initiative

6 gelöscht und geändert werden können. Ebenso soll es die Möglichkeit des selektiven Exports von Teilen der Komponenten geben. Es soll komplett vom Benutzer verdeckt sein, sodass er nach wie vor nur mit der Plattform untime arbeitet. Auch bezeichnet nun der Standard Komponenten als Bundles, welche ihren eigenen Java Class Loader und ein Protokoll zur Verwaltung des Zustandes (installiert, entfernt, gestoppt etc.) besitzen. Das Framework selber unterteilt sich in 4+1 Schichten. L0: Execution Environment, ist im Allgemeinen die JVM oder eine andere ausführbare Umgebung. L1: Modules, bezeichnet alle essourcen, Klassen und Softwarekomponenten, sowie die OSGi spezifischen Erweiterungen. L2: Life Cycle Management, verwaltet das dynamische Leben der Bundles. L3: Service egistry, verwaltet nun die Bundles intern (z.b. ihren Zustand). Die letzte Schicht ist das Security System, welches mit allen anderen Schichten verknüpft ist und somit für die Sicherheit sorgt. So geht die Kommunikation zwischen den Komponenten oder Anfragen nach essourcen über sie. Bildet man dieses System auf Eclipse ab, so sieht man, dass bestimmte Funktionalitäten nur teilweise übernommen wurden. Abbildung 4 zeigt eine Verfeinerung der untime (Original aus [1]) und die Implementierung der Schichten. Man kann an dieser Abbildung leicht alle Schichten wieder finden. Die JVM spiegelt L0 wider, wobei alle Plug-ins auf sie zugreifen können. Die L1 Modul Schicht findet sich im Plug-in directory wieder, wo sich alle essourcen befinden. Platform esources Plug-In Workbench Plug-In Activated Plug-Ins Plug-In egistry Eclipse IDE Plug-In Directory (Modules) Java Execution Environment JVM Lifecycle Manager Service registry manager Abbildung 4 Eclipse untime OSGi Workbench Security Service OSGi Framework Platform untime harddisk L2 ist der Steuerakteur für die dynamischen Plug-ins. Hier treten auch die ersten Unterschiede auf. Seit Version 3.0 ist das dynamische installieren von Plug-ins möglich. Dafür müssen die entsprechenden Extension Points genutzt werden, um die Abwärtskompatibilität zu sichern. In diesen sind bestimmte Methoden deklariert (start/stop), mit denen die essourcen dynamisch angefordert werden. Sind diese Methoden nicht implementiert, so ist das Installieren während der Laufzeit auch nicht möglich. Die Deinstallation von Plug-ins soll erst ab Version 3.1. unterstützt werden, da sich hier jedoch einige Probleme in Bezug auf die Laufzeit- Abhängigkeiten ergeben, kann die Entwicklung dieser Extension Points noch etwas andauern. Der Lifecycle Manager realisiert also im Groben die leazy loading Politik von Eclipse. L3 befindet sich im Service egistry Manager, welcher das Laden der Manifeste und den Zugriff auf die egistry steuert. Hier werden die Konzepte für das Manifest, Extension Points und Dependencies realisiert. Die Erweiterung der Zustände für Bundles wird ebenfalls nur teilweise umgesetzt, da nicht alle Zustände benötigt werden. Der Security Service bleibt wie im Standard erhalten und steuert die Kommunikation zwischen allen Schichten und verwaltet die echte für essourcen. Man sieht, dass Eclipse das OSGi-Framework schon recht gut implementiert und die fehlenden Punkte unter Umständen in folgenden Versionen realisiert werden.

7 GUI Packages view Type hierarchy view Java editor Java outline un Preference Page Action Java Perspective JDT UI Java Model Java Builder Source files Source files Binary class files Java Problems Marker Dependency Graph Java Element Tree classpath Java Project Nature Workspace JDT Core 5. Java Development Tool Viele Menschen assoziieren Eclipse meist mit einer Java Entwicklungsumgebung, dass dem nicht so ist, sollte aus [1] und dieser Ausarbeitung ersichtlich geworden sein. Trotzdem sei an dieser Stelle kurz auf die Leistungsfähigkeit der JDT eingegangen und danach auf die eigentliche Einbettung in das Eclipse Framework. In Abbildung 5 erkennt man den grundlegenden Aufbau aus der Sicht eines Anwenders. Man greift mittels einer grafischen Oberfläche (die GUI von Eclipse) auf die entsprechenden Teile, wie die Package View oder verschiedene Editoren zu. Neben Views und Editoren gibt es auch Buttons etc. mit denen man direkte Funktionen aufrufen kann, so z.b. un. Der Benutzer selbst hat somit nur Zugriff über die grafische Benutzerschnittstelle auf das JDT UI. Alles, was im Hintergrund abläuft, behandelt die JDT Core. Dort finden sich Elemente wie das Java Model und der Java Builder, welcher den Compiler und Debugger beinhaltet. Es wird somit eine komplette Java Entwicklungsumgebung in das Eclipse SDK eingebettet. JDT bietet somit Standardmerkmale, wie z.b.: Java Projects, Editoren, Suchmöglichkeiten, Compiler und Debugger. Abbildung 5 JDT - Aufbau Die Plug-in Developer Environment greift ebenfalls auf dessen Teile zurück und nutzt sie um z.b. Plug-ins zu kompilieren Implementation ealisiert wird das Ganze nun vornehmlich über das Konzept der Extension Points (Abbildung 6 zeigt eine Aufzählung der wichtigsten Erweiterungen). Eclipse stellt auf der linken Seite Punkte für Editoren, Views, Perspektiven usw. bereit. Diese werden dann durch konkrete Plugins erweitert und implementiert. Man kann hier auch eine eindeutige Trennung zwischen Workbench und Workspace erkennen. Dies ist darin begründet, dass die grafische Benutzerschnittstelle vom Laufzeitkern abgekapselt wurde, um unabhängig davon verschiedene Möglichkeiten zu bieten. Die Trennung wurde ebenfalls vom JDT übernommen und so findet man sie im JDT UI und JDT Core wieder. Das erlaubt z.b. die Kompilation von Java Projekten mittels der Core über die Konsole JDT Core Der Kern baut sich aus folgenden drei Dingen zusammen: Java Project Nature markiert Projekte als Java spezifisch. D.h. es wird z.b. ein classpath file

8 eingeführt und der Aufbau von Klassennamen definiert. Der Java Builder bildet im Groben den Compiler und den Debugger, mit denen die Java Projects kompiliert werden können. Fehler werden über das Java Problem definiert und beim Auftreten in die Dateien/Editoren geschrieben. Eine Besonderheit bildet der Dependency Graph (siehe Abbildung 5). Mittels diesem, ist es möglich eine sehr effiziente Kompilierung auszuführen. Der Builder merkt sich, welche Dateien bereits verändert sind, welche kompiliert wurden und auf welche momentan zugegriffen wird. Somit wird bei einem un nie alles neu kompiliert - es sei dem, es ist gewünscht. Ebenso bietet es die Möglichkeit in Leerlaufphasen schon Teile vorzukompilieren, daraus folgt, dass auch ein teilweise fehlerhafter Code benutzt werden kann und große Projekte schneller lauffähig sind, da nur die veränderten Teile übersetzt werden müssen JDT UI Das UserInterface bildet die Schnittstelle zum Benutzer und bietet ihm eine Perspektive mit Action Sets (z.b. Buttons), Editoren und Views. Mit diesen kann er seine Java Projekte zusammenbauen und editieren. Um auf den essourcen zu arbeiten, bietet das JDT das Java Model Java Model Das Modell bildet eine API zur Navigation auf dem Workspace, dabei werden alle essourcen durch Objekte ersetzt, um nicht direkt auf ihnen zu arbeiten. Dazu puffert es oft gebrauchte Elemente in dem Java Element Tree und stellt somit eine sichere Schnittstelle zur Verfügung. Alle Akteure aus dem JDT UI müssen über das Model zugreifen, damit Konflikte ausgeschlossen werden. Nur der Builder hat noch direkten Zugriff auf den Speicher um seine Aktivitäten auszuführen. Workbench Elements Perspectives Views Editors Wizards JDT UI Elements Perspectives Java Perspective Views Packages View Editors Java Editor Wizards For New Java Project Type Hierarchy Perspective Type Hierarchy View Scrapbook Editor New Java Package New Scrapbook Page un and Debug Nach der Kompilation durch den Builder startet das JDT eine separate JVM, um das Programm laufen zu lassen. Damit wird sichergestellt, dass ein Fehler Eclipse nicht beeinträchtigt. Außerdem ist es somit möglich in der Debug Perspektive alle laufenden und terminierten Prozesse anzuzeigen und aus ihr heraus zu verändern. Damit wird dem Entwickler eine gute Möglichkeit geboten auf seine Programme zur Laufzeit Einfluss zu nehmen. Action Sets Property Pages Preference Pages Workspace Elements Project Natures Builders Marker Types Java Action Set Property Pages For Java Build Path Java Preference Pages Classpath Variables JDT Core Elements Java Project Nature Java Builder Java Problem Jar Source Attachments Code Formatter Java Editor Abbildung 6 Eclipse/JDT Extension Points 6. Schluss Mit dem Plug-in Mechanismus von Eclipse ist es möglich viel Funktionalität ohne einen Verlust von Performance zu realisieren. Des weiteren sind weit reichende Möglichkeiten zur Erweiterung geschaffen worden. All diese Konzepte und Technologien lassen Eclipse zu einem Musterbeispiel in vielerlei Hinsicht werden. Auch in Bezug auf die Einsatzmöglichkeiten sind Eclipse keine Grenzen gesetzt. Im Laufe der Zeit hat es sich wirklich zu einer universellen Plattform entwickelt und stellt durch seine Plattformunabhängigkeit im Zusammenspiel mit Java eine optimale Lösung für viele Probleme dar. Man kann also gespannt sein, was an Plug-ins für Eclipse noch auf den Markt kommt. Ich hoffe ich konnte mit meiner Ausarbeitung

9 einen Teil dazu beitragen, die Komplexität von Plug-ins und deren Einbettung in die Konzepte und Technologien von Eclipse zu vereinfachen, sodass es anderen Entwicklern eine Hilfe sein wird. eferenzen [1] M.Kunze, The Eclipse Platform, [2] Eclipse Foundation [3] Open Services Gateway Initiative [4] Article of Javaspektrum 2/2005 (OSGi Framework) e_js_02_05.pdf [5] J. Arthorne, C. Laffra, Official Eclipse 3.0 FAQs, Addison Wesley Professional, 2004 [6] Javamagazin eclipse special Herbst

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Eclipse Runtime (OSGi) als Plattform eines Swing Rich Client Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern andreas.moesching@rtc.ch Zu meiner Person

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Die OSGi Service Plattform

Die OSGi Service Plattform Die OSGi Service Plattform Seminarvortrag Bernhard Cleven Gliederung 1 Einleitung 2 Das Framework 3 Bundles 4 Services 5 Beispiel 6 Fazit Seite 1/ 17 Einleitung Warum OSGi? Durch Modularisierung flexible

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Eine Einführung. Vortragende(r) FU Institut Berlin für Informatik 14.12.2005. Ingo Mohr

Eine Einführung. Vortragende(r) FU Institut Berlin für Informatik 14.12.2005. Ingo Mohr Rich Client Platform (RCP) Eine Einführung Vortragende(r) Institut für Informatik Ingo Mohr FU Institut Berlin für Informatik 14.12.2005 05. Juni 2008 Inhalt 1. Motivation 2. RCP Konzepte 3. RCP Applikations

Mehr

Die Eclipse Rich Client Platform. Martin Lippert Consultant und Coach lippert@acm.org

Die Eclipse Rich Client Platform. Martin Lippert Consultant und Coach lippert@acm.org Die Eclipse Rich Client Platform Martin Lippert Consultant und Coach lippert@acm.org Historisches Eclipse is a universal platform for integrating development tools Plugin Development Environment PDE Java

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck

SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse. Christoph Lordieck SAP -Schnelleinstieg: ABAP-Entwicklung in Eclipse Christoph Lordieck INHALTSVERZEICHNIS Inhaltsverzeichnis Vorwort 7 1 Einführung in Eclipse 11 1.1 Motivation der SAP für Eclipse 11 1.2 Vorteile von ABAP-Entwicklung

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Inhaltsverzeichnis. 2.2 Grundlagen der UML... 41. 2.3 Zusammenfassung... 53

Inhaltsverzeichnis. 2.2 Grundlagen der UML... 41. 2.3 Zusammenfassung... 53 Vorwort......................................................... 13 1 Vorbereitungen.................................................. 17 1.1 JDK-Installation unter Windows................................

Mehr

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz

Überblick. Allgemeines, Geschichtliches. Architektur. Oberfläche. Plugins und deren Einsatz Architektur Überblick Allgemeines, Geschichtliches Architektur Oberfläche Plugins und deren Einsatz Was ist Eclipse? Open-Source-Framework zur Entwicklung von Software nahezu aller Art. Bekannteste Verwendung:

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Modulare Anwendungen und die Lookup API Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team Die Notwendigkeit modularer Anwendungen Die Notwendigkeit modularer

Mehr

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4. SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen

Mehr

Eclipse Tutorial.doc

Eclipse Tutorial.doc Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse

Mehr

Eclipse Tomcat Plugin Starthilfe

Eclipse Tomcat Plugin Starthilfe In dieser Starthilfe Installation des Tomcat Plugins Anpassen der Installation Das Tomcat HelloWorld (Servlet) Projekt Hot Code Replacement Eclipse Tomcat Plugin Starthilfe 1.1. Installation Folgende Software

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank

Inhaltsverzeichnis. TeiM. V E E.l E.2 E.3 E.4. Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank V E E.l E.2 E.3 E.4 TeiM 1 1.1 1.2 1.3 1.4 1.5 2 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 3.4 3.5 Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank Überblick Die Entwicklungsumgebung

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03. Software-Engineering 2 Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.2009 1 Entwicklungsumgebungen, CASE-Tools, CASE-Werkzeuge unterstützen den Software-Entwicklungsprozess

Mehr

AK Medientechnologien Hello World. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/

AK Medientechnologien Hello World. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ AK Medientechnologien Hello World Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Demo-Applikation: Hello World Rückblick auf einzelne Schritte Entwicklungswerkzeuge

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Allgemeines Entwicklung eines eigenen Diagrammeditors inklusive Interpreter und Codegenerierung Einsatz von Modellen zum Entwickeln

Mehr

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Neue Technologien effizient nutzen Ehningen, 3. Juli 2014 Rodney Krick rk@aformatik.de aformatik Training & Consulting GmbH & Co. KG

Mehr

Node.js der Alleskönner. Kai Donato MT AG Ratingen

Node.js der Alleskönner. Kai Donato MT AG Ratingen Node.js der Alleskönner Kai Donato MT AG Ratingen Schlüsselworte JavaScript, Node.js, NPM, Express, Webserver, oracledb Einleitung Node.js ist nach seiner Veröffentlichung im Jahre 2009 in aller Munde

Mehr

Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch.

Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch. Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch christof.seiler@datacomm.ch nik@netstyle.ch stefan.feissli@hispeed.ch 16. Dezember 2005 Seite 2 Inhaltsverzeichnis 1 Einfache Installation

Mehr

Rich Client Platform

Rich Client Platform Rich Client Platform SWT Praxis - Seminar Jan Marc Hoffmann Institut für Informatik Technische Universität zu Berlin 10. Juni 2008 1 / 46 1 2 3 4 5 6 2 / 46 Gegeben ist: java.awt.* Der Kunde wünscht sich:

Mehr

eclipse und Komponenten

eclipse und Komponenten Christian bossk Holle & Markus Breitländer Fh-Dortmund Fb Informatik SS04 Geschichte von eclipse April 1999 Eclipse wird von OTI und IBM entwickelt November 2001 Eclipse wird Open Source Lizensiert unter

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

NetBeans Rich Client Platform. Anton Epple Göttingen, Source Talk Tage

NetBeans Rich Client Platform. Anton Epple Göttingen, Source Talk Tage NetBeans RCP Anton Epple Göttingen, 25.9.2008 Source Talk Tage Was ist eine Rich Client Platform? Framework zur Entwicklung von Desktop Applikationen Besteht aus: Anwendungslaufzeitumgebung ~ Vergleichbar

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Apps-Entwicklung mit Eclipse

Apps-Entwicklung mit Eclipse JDroid mit Eclipse Seite 1 Apps-Entwicklung mit Eclipse Version 1.1, 30. April 2013 Vorbereitungen: 1. JDK installieren JDK SE neuste Version (64 oder 32 Bit) herunterladen und installieren (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Komponentenbasierte Softwareentwicklung

Komponentenbasierte Softwareentwicklung Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies

Mehr

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner www.inventage.com

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner www.inventage.com Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner www.inventage.com Eignet sich Eclipse RCP als Enterprise Plattform? Einführung Demos Corporate Governance Asset

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung

Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung Die Scala Entwicklungsumgebung 1 Was ist drin? Die Scala-Entwicklungsumgebung enthält Die Scala-Shell: scala Zwei Compiler: scalac und fsc (Fast Scala Compiler) Die API Die Laufzeitumgebung Den Scala-Basar

Mehr

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr. Multimedia im Netz Wintersemester 2011/12 Übung 10 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 2 Gesundes neues Jahr 3 Blatt 08 Videoformate im

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung zur Thematik der Präsentationstechniken 2. Termin Präsentationstechniken Heute: 1 (Thema: Eclipse) für Kurzvorträge 2 Einführung in Präsentationstechniken 3 Gruppeneinteilung und Themenzuordnung Nächstes

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Eine Kommando-Oberfläche für.net

Eine Kommando-Oberfläche für.net Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

URT Eclipse All in one

URT Eclipse All in one URT Eclipse All in one Das Paket Eclipse All in one enthält Programme und Einstellungen, die zum Programmieren mit Eclipse in Zusammenarbeit mit Subversion und ANT benötigt werden. Dieses Paket dient als

Mehr

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files 7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung

Mehr

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling)

1. BlueJ installieren (nach dem Buch Java lernen mit BlueJ von David J. Barnes; Michael Kölling) 1. BlueJ installieren... 1 2. BlueJ auf die deutsche Version umstellen... 1 3. BlueJ Extensions... 2 a. Klassenkarte... 2 i. UML Extension... 2 ii. Klassenkarte zum Schulbuch... 3 b. CNU BlueJ Code Formatter...

Mehr

Eigene Java- Klassen in Intrexx

Eigene Java- Klassen in Intrexx T E C H N I S C H E D O K U M E N T A T I O N Eigene Java- Klassen in Intrexx Intrexx 6 1. Einführung: Velocity ist ein Open-Source Projekt der Jakarta Projektgruppe und birgt seine Hauptvorteile bei der

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung

Mehr

Ein ganz normaler Tag. Eclipse und Ich

Ein ganz normaler Tag. Eclipse und Ich Ein ganz normaler Tag Eclipse und Ich 2008 Bredex GmbH Version 2.3 Agenda Motivation 08:32 Uhr Los geht s 08:47 Uhr Einstieg in die tägliche Arbeit 08:48 Uhr Support 09:30 Uhr Standup Meeting 10:12 Uhr

Mehr

Verteiltes Debugging. Gemeinsames Debuggen in Saros

Verteiltes Debugging. Gemeinsames Debuggen in Saros Verteiltes Debugging Gemeinsames Debuggen in Saros Motivation Saros unterstützt bislang nur das gemeinsame editieren von Quelltext > Support auf Compile Time Ebene Softwaredesign Fehler (Anw Logik) erst

Mehr

Entwicklungstand der GUI

Entwicklungstand der GUI 1/13 Entwicklungstand der GUI Dietrich Vogel dvogel@physik.uni-wuppertal.de 7. Juli 2004 2/13 Inhalt 1.Konzept 2.Entwicklungsstand 3.Bestehende Probleme 4.Weitere Entwicklungsstrategie 5.Fragen, Diskussion

Mehr

Programmieren II. Exkurs: Apache Maven. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren II. Exkurs: Apache Maven.  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren II Exkurs: Apache Maven KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Agenda Einführung in Apache Maven Was ist Apache Maven? Verwendung Einbindung in IDE APACHE

Mehr

Eclipse einrichten. Wechseln Sie in Ihr EclipseInstallationsverzeichnis... > cd $Eclipse_Verzeichnis$ >./eclipse. und starten Sie das Programm.

Eclipse einrichten. Wechseln Sie in Ihr EclipseInstallationsverzeichnis... > cd $Eclipse_Verzeichnis$ >./eclipse. und starten Sie das Programm. Eclipse einrichten Wechseln Sie in Ihr EclipseInstallationsverzeichnis... und starten Sie das Programm. Beim ersten Start von Eclipse werden Sie aufgefordert, Ihr Arbeitsverzeichnis zu wählen. Alle Ihre

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Java-Tutorium WS 09/10

Java-Tutorium WS 09/10 Tutorial: Eclipse Debugger Was ist der Eclipse Debugger? Die Eclipse Plattform stellt einige sehr hilfreiche Features zum Programmieren bereit. Eines dieser Features ist der Debugger. Mithilfe des Debuggers

Mehr

Software Design basierend auf dem Plug-In Konzept

Software Design basierend auf dem Plug-In Konzept Software Design basierend auf dem Plug-In Konzept Michael Antes Seminar Simulation und Bildanalyse mit Java, WS2003 Universität Ulm Software-Design basierend auf dem Plug-In-Konzept Inhalt: Einführung:

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 04. November 2008 Was ist EMF? Eclipse Modeling

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build:

Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build: Übung 1: Von einer naiven JavaScript Applikation zu einem modernen Front-End Build: Teil 1: Refactoring der naiven Applikation Wechseln Sie in das Verzeichnis 01-Intro/01-SimplisticToDoNaive Öffnen Sie

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Kurzanleitung Installation der Zend Studio Sprachpakete

Kurzanleitung Installation der Zend Studio Sprachpakete Kurzanleitung Installation der Zend Studio Sprachpakete Von Zend Technologies, Inc. www.zend.com Installation Zend Studio Sprachpaket Wenn Ihre regionalen Einstellungen für Deutsch, Französisch oder Italienisch

Mehr

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X

Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Datenspooler Installationsanleitung Gültig ab Datenspooler-Version 2.2.20.X Inhalt 1. Vorbedingungen... 4 2. Installation... 5 2.1. Umstellung von Datenspooler Version A.03.09 auf Datenspooler-Version

Mehr

APPS für ios 10. professionell entwickeln. Apple Watch

APPS für ios 10. professionell entwickeln. Apple Watch thomas SILLMANN APPS für ios 10 professionell entwickeln // Sauberen Code schreiben mit Swift 3 und Objective-C // Stabile Apps für iphone und ipad programmieren // Techniken & Methoden von Grund auf verstehen

Mehr

Bau dir dein eigenes Eclipse

Bau dir dein eigenes Eclipse Eclipse Builds mit Bau dir dein eigenes Eclipse Viele Unternehmen setzen auf Eclipse als IDE, reichern diese aber um eigene Plug-ins und ein eigenes Branding an. Wie in [1] beschrieben, war der Prozess

Mehr

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit.

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit. 1 Seminar zum Programmierprojekt Arbeitsbereich Technische Informatik Ausgabe: 30. April 2008 Anleitung B3 Einführung in die Entwicklungsumgebungen Allgemeines In dieser Aufgabe lernen wir die Entwicklungsumgebungen

Mehr

Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich

Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich Dependency Injection in der Praxis: Spring, PicoContainer und Eclipse im Vergleich Dipl.-Informatiker Martin Lippert Senior IT-Berater martin.lippert@it-agile.de http://www.it-agile.de/ Überblick Motivation

Mehr

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt. Python Installation 1 Vorbereitung Diese Anleitung ist für Windows ausgelegt. 1.1 Download Python kann online unter https://www.python.org/downloads/ heruntergeladen werden. Hinweis: Im CoderDojo verwenden

Mehr

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05] Inhaltsverzeichnis 1 Einleitung 3 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]....... 4 1.2 Eclipse als Java Entwicklungsumgebung................. 21 1 Einleitung Versionierung mit CVS Eclipse

Mehr

Ant in Eclipse Starthilfe

Ant in Eclipse Starthilfe IN DIESER KURSEINHEIT Einleitung o Um was geht's eigentlich? Hello World o Das Ant Skript Mehrere Targets und Properties o Hello World Ausgabe Ant Launch Configurations o Definition o Modifikation o Nutzung

Mehr

Nils Hartmann Gerd Wütherich. Build my bundle! oder: Es muss nicht immer PDE sein

Nils Hartmann Gerd Wütherich. Build my bundle! oder: Es muss nicht immer PDE sein Nils Hartmann Gerd Wütherich Build my bundle! oder: Es muss nicht immer PDE sein Inhalt» Theorie» Bauen von Software» Projekte, Projektbeschreibungen und Definition von Abhängigkeiten» Integration bestehender

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

CDT bei Bosch Rexroth (Ein Erfahrungsbericht)

CDT bei Bosch Rexroth (Ein Erfahrungsbericht) CDT bei Bosch Rexroth (Ein Erfahrungsbericht) DCC/EDF Harald Kästel-Baumgartner Agenda Firmenpräsentation Ausgangslage Zielsetzung Know How Toolchain Projektstruktur Positive und negative Erfahrung 2 Das

Mehr

MEHR FUNKTIONEN, MEHR E-COMMERCE:

MEHR FUNKTIONEN, MEHR E-COMMERCE: MEHR FUNKTIONEN, MEHR E-COMMERCE: XT:COMMERCE PLUGIN BB HERVORGEHOBENE PRODUKTE XT:COMMERCE PLUGIN BB HERVORGEHOBENE PRODUKTE Das xt:commerce Modul BB Hervorgehobene Produkte erlaubt es Ihnen, ein beliebiges

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Entwicklungswerkzeuge

Entwicklungswerkzeuge Entwicklungswerkzeuge Werner Struckmann & Tim Winkelmann 10. Oktober 2012 Gliederung Anforderungen Projekte Debugging Versionsverwaltung Frameworks Pattern Integrated development environment (IDE) Werner

Mehr

Cockpit Update Manager

Cockpit Update Manager Cockpit Update Manager ARCWAY AG Potsdamer Platz 10 10785 Berlin GERMANY Tel. +49 30 8009783-0 Fax +49 30 8009783-100 E-Mail info@arcway.com ii Rechtliche Hinweise Bitte senden Sie Fragen zum ARCWAY Cockpit

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

Software Engineering II

Software Engineering II Software Engineering II Wintersemester 12/13 Fachgebiet Software Engineering Installation der MWE Plugins Von der Juno Update Site installieren (falls noch nicht vorhanden): MWE SDK Xpand SDK 2 TFD Projekt

Mehr

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur 1 Web Modeler Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur W3L AG info@w3l.de 04.2008 2 Inhaltsverzeichnis Motivation Modellierungswerkzeug Techniken Architektur Datenhaltung

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Maik Schmidt Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 21. April 2009 Was ist EMF? Eclipse Modeling

Mehr

Software-Engineering Grundlagen des Software-Engineering

Software-Engineering Grundlagen des Software-Engineering Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE

Mehr

Eclipse 3.0 (Windows)

Eclipse 3.0 (Windows) Eclipse Seite 1 Eclipse 3.0 (Windows) 1. Eclipse installieren Eclipse kann man von der Webseite http://www.eclipse.org/downloads/index.php herunterladen. Eclipse ist für Windows, Mac und Linux erhältlich.

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

ECLIPSE PLUG-IN. Redwood Anwendertage 2015 ECLIPSE PLUG-IN Redwood Anwendertage 2015 Übersicht Was ist Eclipse? Welche Voraussetzungen benötige ich? Wie wird das Plug-In installiert Welche Konfigurationen sind sinnvoll? Tipps & Tricks Was ist Eclipse

Mehr