Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

//

Anypoint Code Builder – Ein erster Einblick (Desktop IDE)

19.3.2024 | 7 Minuten Lesezeit

Seit einiger Zeit steht der Anypoint Code Builder (ACB) in der General-Availability-Version zur Verfügung. Ein Grund, sich einige Features der lang ersehnten Ablösung des Anypoint Studios einmal anzusehen. Schließlich warten ich und viele meiner Kollegen bereits seit langem darauf, dass das in die Jahre gekommene Anypoint Studio in den verdienten Ruhestand geschickt wird und viele kleine Ecken und Kanten (Manchmal auch Schmerzen!) vielleicht der Vergangenheit angehören. Dabei bin ich pragmatisch vorgegangen und habe einfach ein Projekt erzeugt und geschaut, welche Änderungen mir positiv oder auch negativ auffallen. Eine umfassenden Leitfaden wird man hier nicht finden.

An dieser Stelle ist vorab aber bereits ein Wort der Warnung angebracht: Obwohl das Tool sich bereits recht gut anfühlt, ist es meiner Meinung nach noch nicht reif für den produktiven Einsatz. Ich rate daher, obwohl es sich laut Dokumentation um keine Beta-Version mehr handelt, aktuell noch vom einem produktiven Einsatz ab – oder zumindest sollte vorher klar geprüft werden, ob dieser Zustand für die eigenen Einsatzzwecke geeignet ist!

Wenn ihr jedoch genau wie ich Lust habt, einfach mal einen ersten Überblick zu bekommen, was uns bei der neuen Mule-Entwicklungsumgebung erwartet, ohne dass ihr euch gleich das Tool installieren müsst, ist dieser Blogpost eventuell genau richtig!

Alles neu macht der ...Mule

Das zugrunde liegende Gedicht „Alles neu macht der Mai" aus dem 18. Jahrhundert trifft es recht gut. Das alte, Eclipse-basierte, Anypoint Studio hat ausgedient und wird durch eine moderne, auf Visual Studio Code (VS Code) basierte Entwicklungsumgebung, abgelöst. Den meisten Entwicklern dürfte dieser kostenlose Code Editor von Microsoft bereits bekannt sein, welcher sich durch eine große Anzahl von Plugins nach belieben erweitern lässt. Für alle Anderen, denen VS Code kein Begriff ist – auch wenn mich einige Code-Editor-Evangelisten jetzt sicher steinigen werden – sind Atom, Sublime Text oder Notepad++ in vieler Hinsicht vergleichbar.

Der große Unterschied ist nun, dass auf der Basis von VS Code nun durch eine zusätzlich installierbare Erweiterung eine komplette Mule-Entwicklungsumgebung entstanden ist.

Installation

Falls ihr doch Lust habt, die neue Version einmal selbst zu testen, empfehle ich die Installation gemäß der offiziellen Dokumentation. Ich hatte dabei weder unter Windows 11 noch MacOS Sonoma Probleme. Und da sich einige jetzt fragen werden: Und was ist mit Linux? Leider gibt es zum Zeitpunkt der Erstellung dieses Blogartikels (3/2024) noch keine Informationen, ob und wann eine Lösung für Linux angeboten wird.

Der erste Eindruck

Nach der Installation erwartet uns nach dem ersten Start folgende Ansicht:

Auf mich macht dies bereits einen frischen, modernen Eindruck und sollte jemandem das Standard-Farbschema nicht gefallen, stehen einem eine Vielzahl von Farbthemen zur Verfügung – welche, im Gegensatz zum Anypoint Studio, stimmig wirken und jedem Theme-Connoisseur genug Freiraum bieten sollten. Natürlich gibt es auch eine eingebaute Variante in hell:

Auch schön, dass man über die Icons am linken Bildrand alle relevanten Ansichten (Projekt, Git, Suche, Testing) direkt ansteuern kann. Auch die Konfiguration (Zahnrad), welche im Anypoint Studio – Eclipse-bedingt – sehr überladen mit Einstellungen war, wurde auf die für die Mule-Entwicklung nötigen Einstellungen reduziert.

Die Command-Palette

Prinzipiell kann man im Anypoint Code Builder so ziehmlich jede Aktion über ein dafür vorgesehenes Icon oder Menü-Element auslösen. Was mir aber im Laufe der Zeit viel besser gefallen hat, ist dass man, wie in VS Code üblich, viele Befehle per Command-Palette ebenfalls auslösen kann. Diese lässt sich über eine Tastenkombination öffnen und bietet dann eine Vielzahl an Aktionen.

Man ist dabei nicht wie in meiner Vorauswahl auf MuleSoft-Befehle begrenzt. Es lässt sich auch eine große Anzahl anderer Aktionen wie Textformatierungen auslösen oder gar eigene Kommandos erzeugen. Die Palette hat sich für mich auch dann als hilfreich erwiesen, wenn ich mal wieder eine Tastenkombinationen vergessen habe. Wenn man zum Beispiel "Format" eingibt, sieht man sofort, welche Tastenkombination für das Formatieren eines Dokumentes nötig ist.

Eine neue API erstellen

In der Vergangenheit habe ich persönlich APIs im Design Center auf der Anypoint Plattform erstellt, da für mich die dort gebotenen Möglichkeiten völlig ausreichend waren. Im Anypoint Code Builder soll das Erlebnis nun mindestens gleichwertig sein.

Ein Klick auf „Design an API" und schon erscheint ein stark an das Design Center angelegtes Popup, in welchem die Grundeinstellungen der neuen API festgelegt werden können:

Nun wird das API-Projekt generiert und man kann mit dem Design beginnen. Ich persönliche konnte bei meinen ersten Schritten keine markanten Unterschiede zur Design-Center-Version feststellen. Auch die Hinweisfunktion, welches Element man als nächstes nutzen kann, funktioniert sowohl mit OAS als auch RAML ohne Probleme. Auch die Möglichkeit, sich die Dokumentation zu seinem API-Design anzuschauen, ist wieder möglich.

Da wir uns ja auch das Flow Design anschauen wollen, können wir unsere neu erzeugte API direkt über die Command Palette per "MuleSoft: Implement an API Specification" direkt in ein neues Mule-Projekt einbinden lassen, welches dann, wie man es aus dem Anypoint Studio gewohnt ist, die entsprechenden Komponenten wie zum Beispiel den APIKit-Router enthält.

Hier gibt es auch Verbesserungspotential. Ich habe bisher leider keine Möglichkeit entdeckt, eine erstellte API in das Anypoint Design Center zu überführen, ohne auf Copy/Paste zurückzugreifen, während hingegen das In- und Exportieren dieser API nach Exchange problemlos funktioniert.

Arbeiten mit Flows

Übersicht

Während das Design der API – bzw. die Ansicht dazu – sich im Großen und Ganzen nur wenig verändert hat, ändert sich dies für die Entwicklung der eigendlichen Integration erheblich. Wenn man einen Flow (bzw. die zugehörige Datei) öffnet, öffnen sich zwei neue Tabs. Das erste enthält die visuelle Darstellung der Flows – das andere die XML-Ansicht. Diese können unabhängig voneinander an eine beliebige Position verschoben oder geschlossen und ggf. auch wieder angezeigt werden.

Eine große Neuerung liegt dabei in der visuellen Ansicht. Während man früher alle Flows einer Datei gleichzeitig sehen konnte, werden Flows nun individuell angezeigt. Möchte man einen anderen Flow betrachten, muss dieser entsprechend zuerst ausgewählt werden. Hier wäre es meiner Meinung nach schön, wenn es langfristig die Möglichkeit gäbe, sich alternativ alle Flows auf einer Canvas anzeigen zu lassen, da es mir manchmal hilft, alles gleichzeitig zu betrachten, um die Gesamtheit eines Prozesses und auch eventuelle Verbesserungspotentiale leichter zu erkennen.

Drag and Drop – das war einmal

Das Konzept, einzelne Komponenten auf die Leinwand zu ziehen, wurde unter VS Code verworfen. Stattdessen finden sich vor und hinter jedem Element ein kleines Plus-Zeichen, auf welches man klicken kann, wenn man ein neues Element hinzufügen möchte. Daraufhin öffnet sich ein Menü, in welchem die Komponenten hierarchisch sortiert sind und man schlussendlich die entsprechende Komponente auswählen kann.

Dies führt dazu, dass man, wenn man eine Komponente doch an eine andere Position – oder gar in einen anderen Flow – verschieben möchte, das entsprechende XML kopieren und an der gewünschten Stelle wieder einfügen muss. Gewöhnungsbedürftig, aber kein großes Problem.

Zuletzt empfinde ich es als sehr angenehm, dass man nun per Mausrad nahtlos in die Flows herein- und herauszoomen kann, was gerade auf sehr großen Bildschirmen oder auch bei einer Screensharing-Session mit Kollegen sehr hilfreich sein kann.

Dataweave Editor – wo bist du?

Nein – Dataweave ist nicht verschwunden und es ist weiterhin ein wesentlicher Bestandteil der Entwicklung. Es hat mich nur einige Zeit gekostet herauszufinden, wie ich ein Dataweave-Script schreiben kann, da ich davon ausgegangen bin, dass ein einfacher Klick auf die Transformer-Komponente reicht und sich der Dataweave Editor wie gewohnt öffnet. Dem ist aber bisher nicht so und ich hoffe, dass sich das noch ändert.

Prinzipiell hat man aktuell zwei Möglichkeiten. Die erste ist, den Dataweave Code innerhalb des XML-Dokumentes zu schreiben. Das mag für sehr kleine Scripts funktionieren. In größeren Scripts wird das aber schnell unübersichtlich.

Die zweite Möglichkeit ist, dass Script auszulagern in den "resources"-Ordner und dann in dem entsprechenden Transformer zu verlinken.

<ee:set-payload resource="dwl/my-dataweave-script.dwl" />

Snippets

Bei den Snippets handelt es sich um eine Erweiterung der Komponentenbibliothek, in welcher wir eigene Codefragmente erstellen und ablegen können, um diese später zu nutzen. Das ist vor allem super, da man manche fertig aufbereitete Konstrukte immer wieder mal benötigt. Die Fragmente werden dabei in einer json-Datei hinterlegt und stehen anschließend als eigenständige Komponente zur Verfügung, welche in einem Flow hinzugefügt werden können.

Fazit

Es gibt noch Einiges zu tun. Beim Hinzufügen von Komponenten hakt es manchmal, so dass man die Datei erneut öffnen muss, um das neu hinzugefügte Element zu sehen. Manche Elemente können bisher auch nur über das XML konfiguriert werden, da die entsprechenden Felder in der UI noch gesperrt sind. Und wie erwähnt ist die Verwendung von Dataweave umständlicher geworden als zuvor im Anypoint Studio.

Das neue Studio macht aber auch bereits Vieles gut.

Neben der modernen UI, welche das verstaubten Eclipse Image ablegt, ist die Bedienung sehr verständlich und für einen erfahrenen Mule-Entwickler sollte es nur wenige Probleme bei der Umstellung auf die neue Umgebung geben. Auch bietet der Anypoint Code Builder viele neue Features und lässt die mit Plugins nach Belieben erweitern.

Letztendlich bleibt dieser Blogeintrag aber nur ein kleiner Einblick und ob sich der Visual Code Builder in einem realen Projekt gut schlägt, wird sich erst zeigen. Außerdem wird es auch spannend, ob die noch in der Beta befindliche Cloud IDE eine echte Alternative zur Desktop IDE werden kann.

Zukünftig wird es dann über das ein oder andere Feature mit an Sicherheit grenzender Wahrscheinlichkeit einen Blogpost mit tieferen Einblicken von uns geben⁠.

Ich hoffe aber, dass ich euch einen kleinen ersten Überblick geben konnte und stehe für Fragen oder Anmerkungen natürlich gerne zur Verfügung.

Beitrag teilen

Gefällt mir

5

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.