SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

P3 – Building a Corporate Update Site

Jörg Reichert (itemis AG)
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●

© itemis AG
„Ausstattung“ für Entwickler-Teams,
die mit Eclipse arbeiten



Integrierte Entwicklungs-Umgebung (IDE): Eclipse-Installation mit
Erweiterungen (plug-ins), die für die Entwicklung der End-Anwendung(en)
benutzt werden (Assistenten, Compiler, Navigator, …)



Ziel-Plattform (Target Platform): Bibliotheken, die beim Schreiben des
Programm-Codes zur Verfügung stehen und gegen die der Kode kompiliert
wird



Konfigurations-Daten (Preferences): Konfiguration der EntwicklungsUmgebung und der installierten Erweiterungen, z.B., Code-Formatierung (z.B.
Zeilenlänge, Umbrüche nach Klammern), Compiler Konfiguration)



Projekte-Auswahl (Team Project Sets): Relevanter Programm-Code, der aus
dem Versionskontrollsystem gezogen werden soll



Aufgaben-Verwaltung: Vorkonfiguration der Mylyn Task Repositories, um die
relevanten Aufgaben aus dem JIRA gefiltert zu bekommen

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
2

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●

© itemis AG
Ist-Zustand

3

Manuelle Konfiguration

Versionskontrollsystem,
Web-Server, usw.

nutzen

Richtlinien

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

IDE, Ziel-Plattform,
Projekt-Auswahl, usw.
auf

Projekt-Leiter

Projekt-Mitglieder

●
●

© itemis AG
Motivation

Synchronisieren der Präferenzen
• einheitliche Zeilenlänge, damit SVN-Compare leichter ist,
• einheitliche Checkstyle-Regeln

Synchronisieren des Targets:
• einheitliche Code-Basis, gegen die der zu entwickelnde Code
kompiliert wird

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Synchronisieren der Plug-ins:
• Target und Plug-ins sind kompatibel, so dass es z.B. nicht zu Fehlern
bei Xtext kommt, wenn der Workflow aus der UI aufgerufen wird, die
ein andere Plug-in Version benutzt als das Target, mit dem der Code
kompiliert wird).

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
4
p3

P3 Profil
auf

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Automatische Konfiguration

nutzen

baut

Versionskontrollsystem

veröffentlicht

IntegrationsServer
Projekt-Leiter

Web
Server

Projekt-Mitglieder

5

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●

© itemis AG
• auf dem zentralen Server gibt es einen Ordner der Ordner für
diverse Projekt enthält, dieser Ordner enthält auch eine sitemap.txt,
die den Aufbau der Ordner beschreibt

• ein Projekt-Ordner enthält immer die gleiche Ordner-Struktur
• das Master-Projekt definiert dabei die globale Vorlage für
• die Dokumentation
• die Erweiterungen für die Entwicklungsumgebung
• die Ziel-Plattform
• die Konfigurationen der Entwicklungsumgebung

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

• jedes neues Projekt definiert analog zum Master-Projekt die OrdnerStruktur und kann selbst wieder Plug-ins, Target und
Konfigurationen definieren. Bei manchen Projekten reicht es sogar,
nur die Projekt-spezifische Dokumentation zusätzlich
bereitzustellen, Plug-ins und Target kommen können vom Master
wieder verwendet werden.

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
6
sitemap.txt: Konfiguration der Profile und der
Ordnerstruktur

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

D:/profiles
D:/profiles/ebs-example
D:/profiles/ebs-tools
D:/profiles/ebs-tools/target
D:/profiles/ebs-tools/target/definitions
D:/profiles/master
D:/profiles/master/doc
D:/profiles/master/doc/html
D:/profiles/master/doc/images
D:/profiles/master/doc/pdf
D:/profiles/master/doc/updates
D:/profiles/master/doc/updates/features
D:/profiles/master/doc/updates/plugins
D:/profiles/master/ide
D:/profiles/master/ide/downloads
D:/profiles/master/ide/preferences
D:/profiles/master/ide/updates
D:/profiles/master/ide/updates/3.7
D:/profiles/master/ide/updates/3.7/binary
D:/profiles/master/ide/updates/3.7/features
D:/profiles/master/ide/updates/3.7/plugins
D:/profiles/master/target
D:/profiles/master/target/definitions
D:/profiles/master/target/updates
D:/profiles/master/target/updates/3.7
D:/profiles/master/target/updates/3.7/binary
D:/profiles/master/target/updates/3.7/features
D:/profiles/master/target/updates/3.7/plugins
D:/profiles/master/tools
D:/profiles/master/tools/updates
D:/profiles/master/tools/updates/features
D:/profiles/master/tools/updates/plugins

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Benutzer-Dokumentation in HTML, PDF und für die
Integration in Eclipse (Eclipse Help)

ebs-prefs.zip
Update Site, die eine minimale IDE mit den P3 Tools
enthält und aus der die EBS-IDE gebaut wird
*.target-Datei
Update Site gebaut aus Target

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

P3 Tools Update Site

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Jeder Entwickler bekommt ein Paket aus
• Eclipse-Installation
• Maven
• Java Development Kit (JDK)
• Skripten
In der initialen minimalen Eclipse-Installation sind
nur die P3 Werkzeuge installiert sowie der Pfad
zum globalen Server konfiguriert.

Config.ini:

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

org.eclipse.update.reconcile=false
eclipse.p2.profile=DefaultProfile
osgi.instance.area.default=@user.home/workspace
osgi.framework=file:plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar
publicationServer=https://username:password@server-url/path/profiles
equinox.use.ds=true
eclipse.buildId=
osgi.bundles=reference:file:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1:start
org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse.product=org.eclipse.sdk.ide
osgi.splashPath=platform:/base/plugins/org.eclipse.platform
osgi.framework.extensions=
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.p2.data.area=@config.dir/../p2
osgi.bundles.defaultStartLevel=4

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Beim ersten Starten von Eclipse muss nun das Projekt ausgewählt werden,
in dem man arbeiten möchte.

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Nach der Wahl des Projekts, wird Eclipse neu gestartet, um auf dem
Profil zu arbeiten, welches dem Projekt entspricht. Beim Neustart werden
die Plug-ins für das Projekt in Eclipse installiert, die Target-Definition
und die Konfigurationen heruntergeladen und angewendet. Nach einem
weiteren Neustart sieht man an der Eclipse-Oberfläche die nun geladenen
Erweiterungen. Zudem wurden die Entwicklungsprojekte in den
Workspace geladen sowie die Mylyn Tasks eingerichtet und synchronisiert.

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Bei jedem Eclipse-Neustart wird die lokale Eclipse-Instanz gegen den
globalen Server synchronisiert. Alle Änderungen auf dem Server werden
lokale nachgezogen. So werden zum Beispiel auch Plug-ins deinstalliert,
die nicht mehr auf dem Server vorkommen.

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Über die Eclipse-Einstellungen ist es jederzeit möglich das Projekt zu
wechseln.

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Erstellen der Update Site

Zum Erstellen der gemeinsamen Update Site wird der B3 Aggregator
verwendet (http://www.eclipse.org/modeling/emft/b3/).

B3 stellt einen Editor zur Verfügung, um eine Update Site aus anderen
Update-Sites bzw. aus Teilen deren Inhalte zu erstellen.
Die so erstellte Update Site ist damit nicht mehr von der Verfügbarkeit
der anderen Update-Sites abhängig. Außerdem können in ihr auch
Plattform-spezifischen Features und Plug-ins aufgenommen werden,
so dass sich zum Beispiel Eclipse-Instanzen für verschiedene
Betriebssystem (Windows, Linux) und Architekturen (32bit, 64bit) aus
ihr bauen lassen.

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

B3 kann auch über Kommandozeile aufgerufen werden, so dass die
aggregierte Update-Site auch in einem Build auf dem Integrations-Server
gebaut werden kann.

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

© itemis AG
Features
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

 schnelles Aufsetzen einer Entwicklungsumgebung für ein neues ProjektMitglied

 Entwicklungsumgebung ist bei allen Entwicklern aktuell und konsistent
 einzelne Projekte können definiert von den Standard-Vorgaben
abweichen, indem sie eigene Profile definieren
 IDE und Zielplattform basieren auf aggregierten Update-Sites, um deren
Konsistenz sich zentral gekümmert wird
 Modularisierte Dokumentation: Projekte erhalten neben der globalen
Dokumentation auch jeweils eine Projekt-spezifische Konfiguration

15

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●

© itemis AG
Jörg Reichert

itemis AG – Niederlassung Leipzig
0151 173 96 690

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

itemis AG | Am Brambusch 15-24 | D-44536 Lünen | www.itemis.de

© itemis AG

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Contenu connexe

Similaire à P3 - Building a corporate update site

Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit AngularJens Binfet
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!adesso AG
 
Helm – The Kubernetes Package Manager
Helm – The Kubernetes Package ManagerHelm – The Kubernetes Package Manager
Helm – The Kubernetes Package Managerinovex GmbH
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
 
AUG Bern #3 - re:thinc. JIRA Time Report
AUG Bern #3 - re:thinc. JIRA Time ReportAUG Bern #3 - re:thinc. JIRA Time Report
AUG Bern #3 - re:thinc. JIRA Time ReportTobias Läderach
 
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Sebastian Huppmann
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidDominik Helleberg
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
OSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
OSMC 2009 | NagVis 1.4 - What´s new by Lars MichaelsenOSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
OSMC 2009 | NagVis 1.4 - What´s new by Lars MichaelsenNETWAYS
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDAJörn Dinkla
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrGunther Pippèrr
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA'sFromDual GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenAptly GmbH
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Peter Ramm
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 

Similaire à P3 - Building a corporate update site (20)

Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
 
Helm – The Kubernetes Package Manager
Helm – The Kubernetes Package ManagerHelm – The Kubernetes Package Manager
Helm – The Kubernetes Package Manager
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
AUG Bern #3 - re:thinc. JIRA Time Report
AUG Bern #3 - re:thinc. JIRA Time ReportAUG Bern #3 - re:thinc. JIRA Time Report
AUG Bern #3 - re:thinc. JIRA Time Report
 
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
Automatische Erstellung einer SharePoint 2013 Entwicklungsumgebung in Microso...
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBR
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit Android
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
OSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
OSMC 2009 | NagVis 1.4 - What´s new by Lars MichaelsenOSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
OSMC 2009 | NagVis 1.4 - What´s new by Lars Michaelsen
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
 
Performance?!
Performance?!Performance?!
Performance?!
 
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperrOracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
Oracle oem 12c_plugin_development-doag-konferenz_11_2014_print_gunther_pipperr
 
MySQL für Oracle DBA's
MySQL für Oracle DBA'sMySQL für Oracle DBA's
MySQL für Oracle DBA's
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 

Plus de joergreichert

OKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 UpdateOKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 Updatejoergreichert
 
SDGs und wo sind die Daten?
SDGs und wo sind die Daten?SDGs und wo sind die Daten?
SDGs und wo sind die Daten?joergreichert
 
Gieß a bit more the Bäume
Gieß a bit more the BäumeGieß a bit more the Bäume
Gieß a bit more the Bäumejoergreichert
 
Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)joergreichert
 
OKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt MobilitätOKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt Mobilitätjoergreichert
 
Die Stadt als Schule der Demokratie
Die Stadt als Schule der DemokratieDie Stadt als Schule der Demokratie
Die Stadt als Schule der Demokratiejoergreichert
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)joergreichert
 
A Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for JavascriptA Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for Javascriptjoergreichert
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascriptjoergreichert
 
OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)joergreichert
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patternsjoergreichert
 
Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08joergreichert
 

Plus de joergreichert (18)

OKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 UpdateOKLab Leipzig - 2023 Update
OKLab Leipzig - 2023 Update
 
SDGs und wo sind die Daten?
SDGs und wo sind die Daten?SDGs und wo sind die Daten?
SDGs und wo sind die Daten?
 
Gieß a bit more the Bäume
Gieß a bit more the BäumeGieß a bit more the Bäume
Gieß a bit more the Bäume
 
OKLab Leipzig 2022
OKLab Leipzig 2022OKLab Leipzig 2022
OKLab Leipzig 2022
 
FAIRe Sensordaten
FAIRe SensordatenFAIRe Sensordaten
FAIRe Sensordaten
 
OKLab Leipzig 2021
OKLab Leipzig 2021OKLab Leipzig 2021
OKLab Leipzig 2021
 
Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)Leipzig Giesst (Dezember 2020)
Leipzig Giesst (Dezember 2020)
 
Road to mauAR
Road to mauARRoad to mauAR
Road to mauAR
 
OKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt MobilitätOKLab Leipzig - Schwerpunkt Mobilität
OKLab Leipzig - Schwerpunkt Mobilität
 
Die Stadt als Schule der Demokratie
Die Stadt als Schule der DemokratieDie Stadt als Schule der Demokratie
Die Stadt als Schule der Demokratie
 
OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)OKLab Leipzig (2019 Update)
OKLab Leipzig (2019 Update)
 
A Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for JavascriptA Pattern Language - Patterns for Javascript
A Pattern Language - Patterns for Javascript
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
damals.in/leipzig
damals.in/leipzigdamals.in/leipzig
damals.in/leipzig
 
OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)OkLab Leipzig (2018 Update)
OkLab Leipzig (2018 Update)
 
Map technologies
Map technologiesMap technologies
Map technologies
 
Mongo DB schema design patterns
Mongo DB schema design patternsMongo DB schema design patterns
Mongo DB schema design patterns
 
Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08Spray Democamp Dresden 2011-11-08
Spray Democamp Dresden 2011-11-08
 

P3 - Building a corporate update site

  • 1. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● P3 – Building a Corporate Update Site Jörg Reichert (itemis AG) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● © itemis AG
  • 2. „Ausstattung“ für Entwickler-Teams, die mit Eclipse arbeiten  Integrierte Entwicklungs-Umgebung (IDE): Eclipse-Installation mit Erweiterungen (plug-ins), die für die Entwicklung der End-Anwendung(en) benutzt werden (Assistenten, Compiler, Navigator, …)  Ziel-Plattform (Target Platform): Bibliotheken, die beim Schreiben des Programm-Codes zur Verfügung stehen und gegen die der Kode kompiliert wird  Konfigurations-Daten (Preferences): Konfiguration der EntwicklungsUmgebung und der installierten Erweiterungen, z.B., Code-Formatierung (z.B. Zeilenlänge, Umbrüche nach Klammern), Compiler Konfiguration)  Projekte-Auswahl (Team Project Sets): Relevanter Programm-Code, der aus dem Versionskontrollsystem gezogen werden soll  Aufgaben-Verwaltung: Vorkonfiguration der Mylyn Task Repositories, um die relevanten Aufgaben aus dem JIRA gefiltert zu bekommen ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● © itemis AG
  • 4. Motivation Synchronisieren der Präferenzen • einheitliche Zeilenlänge, damit SVN-Compare leichter ist, • einheitliche Checkstyle-Regeln Synchronisieren des Targets: • einheitliche Code-Basis, gegen die der zu entwickelnde Code kompiliert wird ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Synchronisieren der Plug-ins: • Target und Plug-ins sind kompatibel, so dass es z.B. nicht zu Fehlern bei Xtext kommt, wenn der Workflow aus der UI aufgerufen wird, die ein andere Plug-in Version benutzt als das Target, mit dem der Code kompiliert wird). © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4
  • 6. • auf dem zentralen Server gibt es einen Ordner der Ordner für diverse Projekt enthält, dieser Ordner enthält auch eine sitemap.txt, die den Aufbau der Ordner beschreibt • ein Projekt-Ordner enthält immer die gleiche Ordner-Struktur • das Master-Projekt definiert dabei die globale Vorlage für • die Dokumentation • die Erweiterungen für die Entwicklungsumgebung • die Ziel-Plattform • die Konfigurationen der Entwicklungsumgebung ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • jedes neues Projekt definiert analog zum Master-Projekt die OrdnerStruktur und kann selbst wieder Plug-ins, Target und Konfigurationen definieren. Bei manchen Projekten reicht es sogar, nur die Projekt-spezifische Dokumentation zusätzlich bereitzustellen, Plug-ins und Target kommen können vom Master wieder verwendet werden. © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 6
  • 7. sitemap.txt: Konfiguration der Profile und der Ordnerstruktur ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● D:/profiles D:/profiles/ebs-example D:/profiles/ebs-tools D:/profiles/ebs-tools/target D:/profiles/ebs-tools/target/definitions D:/profiles/master D:/profiles/master/doc D:/profiles/master/doc/html D:/profiles/master/doc/images D:/profiles/master/doc/pdf D:/profiles/master/doc/updates D:/profiles/master/doc/updates/features D:/profiles/master/doc/updates/plugins D:/profiles/master/ide D:/profiles/master/ide/downloads D:/profiles/master/ide/preferences D:/profiles/master/ide/updates D:/profiles/master/ide/updates/3.7 D:/profiles/master/ide/updates/3.7/binary D:/profiles/master/ide/updates/3.7/features D:/profiles/master/ide/updates/3.7/plugins D:/profiles/master/target D:/profiles/master/target/definitions D:/profiles/master/target/updates D:/profiles/master/target/updates/3.7 D:/profiles/master/target/updates/3.7/binary D:/profiles/master/target/updates/3.7/features D:/profiles/master/target/updates/3.7/plugins D:/profiles/master/tools D:/profiles/master/tools/updates D:/profiles/master/tools/updates/features D:/profiles/master/tools/updates/plugins © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 8. Benutzer-Dokumentation in HTML, PDF und für die Integration in Eclipse (Eclipse Help) ebs-prefs.zip Update Site, die eine minimale IDE mit den P3 Tools enthält und aus der die EBS-IDE gebaut wird *.target-Datei Update Site gebaut aus Target ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● P3 Tools Update Site © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 9. Jeder Entwickler bekommt ein Paket aus • Eclipse-Installation • Maven • Java Development Kit (JDK) • Skripten In der initialen minimalen Eclipse-Installation sind nur die P3 Werkzeuge installiert sowie der Pfad zum globalen Server konfiguriert. Config.ini: ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● org.eclipse.update.reconcile=false eclipse.p2.profile=DefaultProfile osgi.instance.area.default=@user.home/workspace osgi.framework=file:plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar publicationServer=https://username:password@server-url/path/profiles equinox.use.ds=true eclipse.buildId= osgi.bundles=reference:file:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1:start org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info eclipse.product=org.eclipse.sdk.ide osgi.splashPath=platform:/base/plugins/org.eclipse.platform osgi.framework.extensions= eclipse.application=org.eclipse.ui.ide.workbench eclipse.p2.data.area=@config.dir/../p2 osgi.bundles.defaultStartLevel=4 © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 10. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Beim ersten Starten von Eclipse muss nun das Projekt ausgewählt werden, in dem man arbeiten möchte. © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 11. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Nach der Wahl des Projekts, wird Eclipse neu gestartet, um auf dem Profil zu arbeiten, welches dem Projekt entspricht. Beim Neustart werden die Plug-ins für das Projekt in Eclipse installiert, die Target-Definition und die Konfigurationen heruntergeladen und angewendet. Nach einem weiteren Neustart sieht man an der Eclipse-Oberfläche die nun geladenen Erweiterungen. Zudem wurden die Entwicklungsprojekte in den Workspace geladen sowie die Mylyn Tasks eingerichtet und synchronisiert. © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 12. Bei jedem Eclipse-Neustart wird die lokale Eclipse-Instanz gegen den globalen Server synchronisiert. Alle Änderungen auf dem Server werden lokale nachgezogen. So werden zum Beispiel auch Plug-ins deinstalliert, die nicht mehr auf dem Server vorkommen. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Über die Eclipse-Einstellungen ist es jederzeit möglich das Projekt zu wechseln. © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 13. Erstellen der Update Site Zum Erstellen der gemeinsamen Update Site wird der B3 Aggregator verwendet (http://www.eclipse.org/modeling/emft/b3/). B3 stellt einen Editor zur Verfügung, um eine Update Site aus anderen Update-Sites bzw. aus Teilen deren Inhalte zu erstellen. Die so erstellte Update Site ist damit nicht mehr von der Verfügbarkeit der anderen Update-Sites abhängig. Außerdem können in ihr auch Plattform-spezifischen Features und Plug-ins aufgenommen werden, so dass sich zum Beispiel Eclipse-Instanzen für verschiedene Betriebssystem (Windows, Linux) und Architekturen (32bit, 64bit) aus ihr bauen lassen. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● B3 kann auch über Kommandozeile aufgerufen werden, so dass die aggregierte Update-Site auch in einem Build auf dem Integrations-Server gebaut werden kann. © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
  • 15. Features ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●  schnelles Aufsetzen einer Entwicklungsumgebung für ein neues ProjektMitglied  Entwicklungsumgebung ist bei allen Entwicklern aktuell und konsistent  einzelne Projekte können definiert von den Standard-Vorgaben abweichen, indem sie eigene Profile definieren  IDE und Zielplattform basieren auf aggregierten Update-Sites, um deren Konsistenz sich zentral gekümmert wird  Modularisierte Dokumentation: Projekte erhalten neben der globalen Dokumentation auch jeweils eine Projekt-spezifische Konfiguration 15 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● © itemis AG
  • 16. Jörg Reichert itemis AG – Niederlassung Leipzig 0151 173 96 690 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● itemis AG | Am Brambusch 15-24 | D-44536 Lünen | www.itemis.de © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●