Showing posts with label oaw. Show all posts
Showing posts with label oaw. Show all posts

September 17, 2008

(English) Generate HTML report of a model transformation tracing model

A short while ago I created a blog entry to get oaw's tracing extension to work. After achieving this I tried to generate a HTML report of my tracing model. Fortunately there is already a Xpand template that does this stuff. But it takes a while for me to get it running, so that I will show you the workflow. It expects to have the org.openarchitectureware.util.stdlib project checked out from the CVS in your workspace, as explained earlier.
<workflow>
<property file="workflow.properties"/>
<component class='oaw.workflow.common.DirectoryCleaner' directories='${targetDir}/tracedoc'/>

<bean >
<platformUri value=".."/>
<registerEcoreFile value="../org.openarchitectureware.util.stdlib/
src/org/openarchitectureware/util/stdlib/trace.ecore" />
<!-- register metamodels referenced by the tracing model -->
<registerGeneratedEPackage value="my.DataPackage" />
</bean>

<component>
<modelFile value="gen/tracing.trace"/>
<outputSlot value="tracemodel"/>
</component>

<component>
<!-- important to get it working -->
<metaModel />
<fileEncoding value="ISO-8859-1"/>
<expand value="org::openarchitectureware::util::stdlib::
tracing::templates::html::root FOR tracemodel"/>
<outlet>
<path value="gen/tracedoc"/>
</outlet>
</component>
</workflow>

Sample oaw Tracing Report
Sample oaw Tracing Report

September 16, 2008

(English) Getting oaw TraceComponent working

For openarchitectureware 4.3 there is a tracing extension available. It allows to create a tracing model of your model2model or model2text transformations. For example you can process this tracing model to generate a HTML, XML, ... documentation of your model transformations.

Unfortunately the extension does not work out of the box for me. I'm using openarchitectureware 4.3.1 from the oaw-development pluginbuilder on a mac. Exactly I use 4.3.1.20080910-1400PRD. After a little time of debugging I found a solution to get it working:

  • check out project org.openarchitectureware.util.stdlib from the oaw CVS

  • switch that projet to branch B_v43 (Team - Switch to Another Branch or Version...)

  • hint: the project must be placed in the workspace where the oaw project is located that will use tracing, because a reference to the trace metamodel (trace.ecore) in the plugin is incorrect (it points to ${workspace}/org.openarchitectureware.util.stdlib/src/org/openarchitectureware/util/stdlib/trace.ecore)


workflow:
<workflow>
<bean class="org.eclipse.mwe.emf.StandaloneSetup" >
<-- important to get the correct workspace path -->
<platformUri value=".."/>
</bean>

<-- XtendComponent and/or Generator -->

<component class="org.openarchitectureware.util.stdlib.TraceComponent">
<traceModelSlot value="tracemodel" />
<traceName value="trace" />
</component>

<component id="traceWriter" class="org.openarchitectureware.emf.XmiWriter">
<inputSlot value="tracemodel"/>
<modelFile value="gen/tracing.trace"/>
</component>
</workflow>

An short example of tracing model2model transformation shows the following snippet:
extension org::openarchitectureware::util::stdlib::tracing;

create Class Class2Table(Class c) :
createTrace(c,this,"m2m") ->
setName(c.name);

June 23, 2008

Ready-to-run JSF-Cartridge Projekt

Ein Benutzer berichtete mir über Probleme bei der Inbetriebnahme der JSF-Cartridge. Infolgedessen probierte ich es selber einmal aus und stieß ebenfalls auf Schwierigkeiten. Deshalb stelle ich nun ein Eclipse-Projekt bereit, dass alle Einstellungen beeinhaltet und nur noch in den eigenen Eclipse Workspace importiert werden muss.




June 3, 2008

openarchitectureware 4.3

Seitdem ich mich im Rahmen meiner Diplomarbeit intensiv mit openarchitectureware (oaw) 4.1.2 auseinandergesetzt habe, gab es mittlerweile zwei neue Releases. Demzufolge interessieren mich die Neuerungen bzw. Verbesserungen. Einige möchte ich nun hier in komprimierter Form wiedergeben:

  • Konfiguration von Workflows (XVar)

  • XWeave zur aspektorientierten Modellierung

  • Aspektorientiert Programmierung für Xtend (siehe Referenz)

  • Veränderte Einbindung von Advices für Templates in der Generatorkomponente
    <advices value='example::Advices1, example::Advices2'/>


  • neuer Editor zur Bearbeitung von Modellen (Generic Editor), der nur die wesentlichen Eigenschaften übersichtlich darstellt und anpassbar ist (Validierung, Icons & Labels, Vervollständigung)

  • Validierung von Check-Regeln in Standard-EMF-Editoren

  • Erzeugen von Recipe-Checks per Ant

  • Integration der Recipe-Fehler in die Eclipse Entwicklungsumgebung

  • Erweiterungen der textuellen Metamodellierung (Xtext)

  • Speichern von temporären Eigenschaften an einem Objekt
    extension org::openarchitectureware::util::stdlib::elementprops;

    setProp(Object o) :
    o.setProperty('myProp', 123);

    Object getProp(Object o) :
    o.getProperty('myProp');


  • Globale Variablen
    org::openarchitectureware::util::stdlib::globalvar


  • Eindeutige Id eines Elements
    org::openarchitectureware::util::stdlib::uid


  • Tracing von Modell-zu-Text und Modell-zu-Modell Transformationen in einem Tracing-Modell, woraus ein HTML-Report erstellt werden kann

February 25, 2007

Vortrag: openarchitectureware

Bereits am 12.12.07 hielt ich einen Vortrag im Rahmen der Special Interest Group "Model Driven Software-Engineering" (SIG-MDSE) über openarchitectureware.

Mit dem Generator Framework konnte ich mich während meines Praktikums bei Form4 intensiv aueinandersetzen. Das Ziel des Vortrags war eine praktische Einführung in die Benutzung von openarchitectureware zur modellgetriebenen Softwareentwicklung zu geben.

Die Präsentation, sowie der "live" entwickelte Generator steht auf den Seiten der SIG-MDSE zum herunterladen bereit.

December 18, 2006

Eclipse Plugin patchen

Bei der Arbeit mit dem openarchitectureware Framework entdeckte ich einen Bug im Plugin. Dieser Fehler war für mein Projekt so schwerwiegend, dass ich den Fehler sofort beheben musste - ich konnte nicht aufs nächste Update in ein paar Monaten warten. Also musste ich ersteinmal herausfinden, wie man ein Eclipse Plugin patcht.

Zuerst beschafft man sich den Quellcode per CVS. Zwar ist die CVS Struktur von Eclipse Projekten im ersten Augenblick gewöhnungsbedürftig, aber dann doch recht schlüssig. Mehr Information zum Checkout gibt es hier. Nachdem die Quellcodes heruntergeladen sind, kann der Fehler gefunden und beseitigt werden. Soweit so gut. Aber wie seine Eclipse Installation aktualisieren?

Für Eclipse Plugin Projekte gibt es immer eine plugin.xml im Stammverzeichnis. Nach dem öffnen dieser startet man im Reiter Overview unter Exporting den Export Wizard. Im Wizard können die benötigten Fragmente, die exportiert werden sollen, ausgewählt werden. Nach dem Export liegen die Fragmente als JAR Datei vor. Diese werden dann in den Eclipse Plugin Ordner (eclipse/plugins) kopiert (ggf. noch alte Versionen des Plugins löschen). Zu guter Letzt Eclipse neu starten, fertig ist der Patch des Plugins.