Schnittstellenmodule automatisch erstellen (JAXB)

vorhergehende Artikel in: Java dWb+ Komponenten
25.01.2015

In einem früheren Artikel wurden verschiedene Gedankenexperimente durchgespielt, die alle unter einem Motto standen: Wie lässt sich für Anwender von dWb+ am unkompliziertesten die Erstellung spezifischer Schnittstellenmodule realisieren? Hier der erste konkrete Vorschlag dazu:

Dataflow Workbench dWb+ Es wurde eine Möglichkeit geschaffen, die Kopplung zu Systemen, die Daten per XML zur Verfügung stellen, bzw konsumieren, zu vereinfachen. Diese Möglichkeit setzt voraus, daß die über die Schnittstelle ausgetauschten Daten über ein XML Schema definiert sind.

Dazu wurde die Technologie JAXB benutzt und darauf aufbauend ein Projekt erstellt, das in der Lage ist, aus einem XML-Schema die Klassen für das Mapping Java<->XML zu erstellen. Anschließend geht das Projekt einen Schritt weiter: zu jeder der Klassen, die als Entsprechungen der Typen im XML-Schema erstellt wurden, wird ein dWb+-Modul erstellt, das in der Lage ist, eine Instanz des jeweiligen Typs aus einer DOM-Struktur oder einem String zu erzeugen.

Für die Serialisierung eines der Typen in einen String, bzw eine DOM-Stuktur stehen dWb+-Module zur Verfügung.

Um die Rohdaten in den Workspace einzuleiten, stehen verschiedenste Module zur Verfügung. Mit den bereits bestehenden Mitteln sind dazu als Schnittstellen unter anderem Dateien, Sockets, eine HTTP-Verbindung oder JMS-Queues und Topics bereits verfügbar. Von dort können die Daten dann mittels der durch das Projekt erzeugten Module in Datenobjekte umgewandelt werden, die andere Module manipulieren können. Resultierende Datenobjekte können nach XML-Strings serialisiert ebenfalls wieder über die breite Palette an Schnittstellenmodulen aus dWb+ an Drittsysteme übergeben werden.

Zur Benutzung des Projekts ist das unten angehängte Archiv zu entpacken. Anschließend muß die Datei namens build.properties noch angepasst werden:

interface.xmlschema=schema.xsd
interface.package=changeme
dWb.libraries.dir=<install directory of dWb+>/jars
interface.xmlschema
Name und voller Dateipfad zum XML Schema Dokument
interface.package
Name des Paketes für die generierten Module und Mappings
dWb.libraries.dir
Name des Unterverzeichnisses namens jars im Installationverzeichnisses der Anwendung dWb+ (komplett mit vollständigem Pfad und einschließlich des Bestandteils jars)

Lizenz
projekt

Artikel, die hierher verlinken

Javascript-Schnittstellen in dWb+

31.01.2015

In einem früheren Artikel wurden verschiedene Gedankenexperimente durchgespielt, die alle unter einem Motto standen: Wie lässt sich für Anwender von dWb+ am unkompliziertesten die Erstellung spezifischer Schnittstellenmodule realisieren? Nach dem ersten nun hier der zweite konkrete Vorschlag dazu:

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.