Donnerstag, 24. Mai 2012


Artikel

Juli 2010 | Artikel

Buckminster, b3 und p2 Fortsetzung, Teil 2

Teil 1   Teil 2   

JAXenter: Auf der b3-Projektseite kann man lesen, dass Eclipse b3 aus den beiden Komponenten b3 Engine und b3 Site Aggregator besteht. Können Sie die beiden Komponenten kurz beschreiben?

Henrik Lindberg: b3 nutzt das Eclipse Modeling Framework (EMF) und Xtext. Es umfasst Repository-Verwaltung, Materialisierung, Discovery, Auflösung und den Build. Die Konzepte ähneln denen von Buckminster, sind aber in vielen Fällen generalisiert und bieten zusätzlich eine Trennung von Aufgabenbereichen. Aus der Perspektive des Anwenders sind die wichtigsten Features:

  • Einfachheit! Die Dinge, die jeder typischerweise bei der Durchführung eines Builds benötigt, sind sehr einfach umzusetzen. Große Sorgfalt wurde auch darauf verwendet, zusätzliche Bearbeitungsvorgänge so einfach wie möglich zu halten.
  • Der b3-Editor ist ein vollständiger Eclipse-Text-Editor mit Syntaxfarbhervorhebung, Codevervollständigung, Quick Fixes und vielem mehr.
  • Zusätzlich zu der Tatsache, dass b3 eine DSL für Build-bezogene Konstrukte ist (die "Build-Einheiten", ihre Abhängigkeiten und die Aktionen, die den Build-Prozess durchführen), ist es auch möglich, die tatsächliche Build-Logik in b3 zu schreiben (ohne auf Java oder ANT zurückgreifen zu müssen). Aber auch das Aufrufen von Java-Code oder ANT-Skripts ist problemlos möglich.
  • Die Einfügung zusätzlicher Prozesse und Modifikationen der Build-Logik ist mittels einer "Before/After/Around"-Semantik in der Logik genauso möglich, wie die Anpassung Build-bezogener Konstrukte (d. h. Manipulation von Dependencies, Filter, Properties etc.)

JAXenter: Und was hat es mit dem b3 Aggregator auf sich?

Hallgren: Der b3 Aggregator nutzt eine Reihe von p2-Repositories als Input und erzeugt ein neues p2-Repository als Output. Er ermöglicht eine feingranulare Kontrolle darüber, welche Artefakte das resultierende Repository enthalten sollen. Da der p2-Planner bei der letzten Entscheidung darüber zum Einsatz kommt, welche Artefakte kopiert werden sollen, ist das resultierende Repository immer kohärent. Alle Artefakte können ohne Konflikte installiert werden. Eine umfassende Liste möglicher Anwendungsfälle findet sich auf der b3-Aggregator-Wiki-Seite.

JAXenter: Das Helios-Release führt auch Verbesserungen des Eclipse-Provisionierungsmechanismus p2 ein. Welche neuen Möglichkeiten gibt es?

Hallgren: Die wichtigsten Neuerungen sind Multi-Agent-Support, das öffentliche API, der neue Ansatz für Queries und Support für Java 5 Generics. Dies sind sehr wichtige Features für die weitere Verbreitung von p2. Ich würde hier gerne auf Ian Bulls letzten Blogeintrag verweisen, der viele der interessanten Features im Detail beschreibt.

Darüber hinaus wurden zahlreiche Bugs gefixt. Anwender der Eclipse IDE werden bemerken, dass der Planner nun sehr viel schneller ist, der Transport zuverlässiger funktioniert und das Userfeedack besser ist.

JAXenter: Was sind die nächsten Schritte für Build und Provisioning in Eclipse?

Hallgren: Als nächsten Schritt planen wir, Buckminster weiter zu verbessern und es zum Backend für b3 zu machen. Das wird die Art und Weise, einen Build-Prozess aufzusetzen, sehr vereinfachen, da b3 es erlaubt, alles in einem Modell zu definieren, möglicherweise sogar in einem einzigen File. Wir wollen einen einheitlichen Weg etablieren, um Artefakte zusammenzubauen und in p2-Repositories zu veröffentlichen.

JAXenter: Vielen Dank für dieses Gespräch!

Thomas Hallgren ist Co-Lead und Hauptarchitekt des Eclipse-Buckminster-Projekts sowie Committer in den Eclipse-Projekten b3 und p2. Thomas ist Mitbegründer von Cloudsmith Inc. und verfügt über mehr als 20 Jahre Berufserfahrung in der Programmierung von Entwicklungswerkzeugen, Frameworks, Infrastruktur-, SOA- und Runtime-Lösungen. Thomas Hallgren ist Contributor in der PostgreSQL-Community und ist Mitglied des Eclipse Architecture Councils.

Henrik Lindberg ist Gründer und CTO von Cloudsmith mit über 20 Jahren Berufserfahrung als Architekt und Entwickler innovativer Infrastruktur- und Anwendersoftware. Früher leitete er u. a. die BEA-Java-Runtime-Gruppe (JRockit) und war CTO verschiedener Softwareunternehmen. Henrik Lindberg ist Leiter der Eclipse-b3- und Buckminster-Projekte und Committer bei Eclipse p2 und EPP.

  1. Buckminster
  2. b3
  3. p2
  4. Neues in Buckminster
  5. Buckminster-Plug-in für Hudson
  6. b3-Aggregator-Wiki
  7. Bull, Ian: "p2 API and the b3 Aggregator, Top Eclipse Helios Feature"

Teil 1   Teil 2   

andere Artikel dieser Serie

Kommentare