Karsten Thoms

     
 

Sculptor 1.3 released


The Sculptor team has announced the release of Sculptor 1.3. Sculptor is a code generation platform following the concept of Domain Driven Design. It is based on openArchitectureWare, Spring, Spring Web Flow, Hibernate and Maven technology and is hosted on the Fornax Platform. Using a textual DSL Sculptor generates the whole application frame for a multi-layer application using the mentioned technologies. Sculptor 1.3 comes with a totally new GUI metamodel for the definition of CRUD GUIs.
"In version 1.1 we implemented the CRUD GUI without a separate gui metamodel. The gui generation was using the business tier model. This was a good start, but the experience was that the templates and helper extensions became rather complicated. A special purpose gui metamodel simplified the templates and moved some of the logic to a transformation instead."
The release notes and a migration guide can be found here.

Blogged with Flock

Tags:

 
 
 
 

openArchitectureWare 4.3 beta released


The openArchitectureWare team has released the openArchitectureWare 4.3 beta version. This version contains some bugfixes and significant improvements of the Xtext framework. Note that the Xtext framework changes are not documented sufficient yet and many API changes are within, therefore it cannot be told "production ready" yet. However, Xtext is rather stable now. If you are beginning with Xtext it might be that you do not find all necessary information in the docs yet. If you are already an Xtext user you will miss a migration guide yet. The docs and migration guide will be worked on for the upcoming 5.0 release. For all users not using Xtext so far the new release brings mainly bug fixes. Go here for download openArchitectureWare 4.3 beta.
 
 
 
 

Achim Demelt joins openArchitectureWare team


Achim Demelt from eXXcelent Solutions joins the openArchitectureWare team. Achim is an experienced software architect and uses oAW for some years now. During his work he already helped us on testing and bug fixing. Now he is working on a concept for incremental code generation. This work is based on a diploma thesis done by Martina Rapp, who worked formerly at itemis. We warmly welcome Achim to our team!
 
 
 
 

Planet newsfeed aggregator installed on openArchitectureWare.org


We have decided to install a newsfeed aggregtor for openArchitectureWare related news feeds on the community website. As tool we have chosen to try Planet Feed Reader, which is used for some famous news platforms as Planet Eclipse.

The subscribed feeds are now only from openArchitectureWare team members but feel free to contact me if you have an openArchitectureWare related feed.

The feed index page is available under http://www.openarchitectureware.org/planet/. There you can find the appropriate feed links for RSS 1.0/2.0, Atom, OPML and FOAFRoll.

 
 
 
 

Fink is searching for mirrors


Fink is a very useful project for Mac OS X users who want to install Open Source software on their Mac. Personally I use the FinkCommander, an graphical user interface for Fink. The Fink project is now searching urgently for new Mirrors, since their mirrors list had to be shortened. If you have a suitable server and some time available please help the Fink project by mirroring the software. Users willing to help need to provide about 100MB of hard disk space and some bandwith. Read all information about mirroring Fink on the FinkMirrors information page.  

Blogged with Flock

apt-get: Waiting for headers


I just tried to install CVS on a Debian system using apt-get like follows: apt-get install cvs During installation I got the message "Waiting for headers 0%", halting the process. It turned out that there was a problem with the Debian mirror. I had to edit the file /etc/apt/sources.list, which had this content:
deb http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main non-free contrib
deb-src http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main non-free contrib

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free
After disabling the first two lines with "#" all worked fine. Afterwards I've added a more reliable mirror. Here you can find the list of Debian mirrors that you could configure in that file if you have similar problems.
 
 
 
 

oAW Workshop auf der CG2008


Für die Code Generation 2008, die vom 25.-27. Juni 2008 in Cambridge stattfindet, wurde ein 3 stündiger oAW Workshop aufgenommen, den ich zusammen mit Sven Efftinge durchführen werde. In diesem Workshop werden wir die Erstellung von Model-to-Text und Model-to-Model Transformationen mit openArchitectureWare an praktischen Beispielen vermitteln. Wie genau wir den Workshop gestalten werden Sven und ich dann bald ausarbeiten. Auf jeden Fall wird im Vordergrund stehen, dass die Teilnehmer die Übungen live auf ihrem Notebook mitmachen können.

Die Code Generation 2008 wird hoffentlich dafür sorgen, dass openArchitectureWare auch außerhalb des deutschsprachigen Raums stärkere Aufmerksamkeit und Verbreitung bekommen wird. Vom Kernteam sind auf der Konferenz auch Markus Völter, Peter Friese und Arno Haase als Speaker vertreten. Damit stellt das oAW Team einen nennenswerten Anteil der Speaker auf der Konferenz.

Vielleicht sieht man sich ja da ...?

 
 
 
 

Executing JUnit tests with JMeter using Maven


Suppose you want to execute JUnit tests from JMeter to make some load or performance tests. JMeter therfore offers the JUnitSampler to execute the tests. If you then want to execute your JMeter test suite with Maven2 you will face a problem.

The blog post "Running JUnitSampler with Maven" describes already a workaround, but there is an issue if you are working on Windows.

Maven JMeter plugin

The Maven JMeter plugin is under development and the only available source is from the JMeterMavenPlugin Wiki Site. But do not download the code from there, the above mentioned blog has provides already a patched version.

Maven Dependency Plugin

The blog post shows a code snippet using the Maven Dependency Plugin. The plugin is used to dump the classpath to a file, which is read by an extended JMeter plugin to create the classpath necessary to execute the JUnit tests. The plugin is referenced with version 2.0-alpha-4.

In the meanwhile the plugin version 2.0 was released. There is a significant change from version 2.0-alpha-4. The alpha version used the colon ':' hard coded to separate path entries, but this is a serious problem for Windows systems, since you have the colon as the drive locator. This was fixed in the final version, which now uses the File.separator char. Further you could now explicitly set the separator using the pathSeparator property, which was not possible in 2.0-alpha-4.

The plugin configuration therefore must be:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>2.0</version>
  <executions>
    <execution>
      <id>build-classpath</id>
      <phase>test-compile</phase>
      <goals>
        <goal>build-classpath</goal>
      </goals>
      <configuration>
        <cpFile>target/classpath</cpFile>
        <includeScope>test</includeScope>
      </configuration>
    </execution>
  </executions>
</plugin>

JUnitSampler limitations

The JUnitSampler implies that the test classes are derived from class TestCase. Therefore it does not work for:
  1. Test Suites
  2. JUnit 4 style test classes
Further the test method must not be dependend on a setup done by TestSetup class or other test wrappers, since the sampler just instantiates the test class and invokes the test method.

If setUp() and tearDown() methods should be called they must be public, otherwise they cannot be invoked.

Repository Configuration

Sometime I wonder why there are central repository sites like ibiblio if you can't find some fundamental jars there. I think I come to this back later in a separate blog post. Same problem for the JMeter jars. Of course I can download the jars and install them to my local repository, but I wanted to get the JMeter jar from a Maven repository. The only location I found was the repository at thinkpond.org

So instead of installing JMeter manually you can configure the repository:

<repositories>
  <repository>
    <id>thinkpond.org</id>
    <name>thinkpond.org Repository</name>
    <url>http://bin.thinkpond.org/repo</url>
  </repository>
</repositories>

Conclusion

It is a bit tricky to integrate JMeter in Maven. But with the tips found in the mentioned blog it is possible to manage the task. Building the JMeter plugin from source is not what I wanted to do to get things running. Also it does not seem that the mentioned workaround will go into the development of the JMeter plugin.

Executing JUnit tests using JMeter's JUnitSampler has some limitations that are annoying for JUnit 4 users. Hopefully there will come a JUnit4Sampler in future.

If you plan to use this framework stack be aware that you will have to keep a patched version of the JMeter plugin in your development environment until there will be an official solution. If you can live with the mentioned workarounds and limitations this combination can be a comfortable way to execute performance tests using Maven. Especially setting up JMeter's classpath can be tedious without Maven integration.

Appendix

Resources

Downloads

 
 
 
 

Relaunch oaw.itemis.de


In den letzten Jahren habe ich, ursprünglich als oaw-dev.de, die Internet-Präsenz oaw.itemis.de als deutschsprachige Support Plattform für openArchitectureWare betrieben. Leider habe ich dieser Plattform nicht genügend Zeit widmen können, weil meine anderen (Freizeit-)Aktivitäten, allem voran die Weiterentwicklung und der internationale Support auf openArchitectureWare.org, Vorrang haben. Nicht zuletzt die Plattform openArchitectureWare.org selbst, die ebenfalls von mir privat betrieben wird. Ganz allein mache ich das zum Glück auch nicht; ab und zu helfen mir Alexander Schmacks und Markus Guske aus. Auch Steffen Mork muss mir ab und zu helfen, wenn administrativ auf dem Linux System was erledigen ist.

Zurück zu oaw.itemis.de. Wie sicher vielen aufgefallen ist hat itemis die aktive Unterstützung für openArchitectureWare in der letzten Zeit massiv intensiviert. Besonders freue ich mich, dass wir mit Sven Efftinge und Peter Friese zwei ausgezeichnete MDSD Experten und entscheidende openArchitectureWare Comitter im Kollegenkreis dazugewonnen haben. Als eine der Maßnahmen zur Verbesserung des openArchitectureWare Angebots wird oaw.itemis.de gerade überarbeitet und das itemis Angebot zu openArchitectureWare in einem professionellen Outfit präsentieren. Die neue Website ist im Prinzip fertig, wir bereiten gerade den Switch vor.

Was mir am Herzen liegt ist, dass das deutschsprachige Forum weiter verfügbar ist. Das Forum ist mittlerweile der einzige aktive Bereich, der von dem System noch genutzt wird. Das aber soll auch so bleiben. Ich sehe das deutschsprachige Supportforum als ein wichtiges Instrument an, um den vielen Usern Hilfestellung zu diesem bemerkenswerten Framework zu bieten. Das englischsprachige Forum ist sicher noch wichtiger, aber manche Anwender wissen es auch zu schätzen, dass sie mit uns auf deutsch kommunizieren können. Die meisten Anwender kommen immerhin aus Deutschland.

Ich hoffe, die Umstellung verläuft reibungslos und unsere Usergemeinde wird das erweiterte Angebot zu schätzen wissen.

 
 
 
 

Web GUI Integrationstests mit Fitnesse und HtmlFixture


Schon häufig habe ich von FIT (Framework for Integrated Tests) sowie Fitnesse gehört und wie einfach es damit sein soll, Integrationstests zu entwickeln. Die klare Trennung zwischen technischer Realisierung der Tests und Testszenarien soll dabei eine Stärke von FIT sein. Wie so häufig hat man aber mal keine Zeit, sich selbst eine Meinung zu bilden und die einfach mal das Produkt auszuprobieren. Das hat sich endlich geändert und ich muss sagen, ich bin schon schwer beeindruckt.

In meinem Fall habe ich mir den Test einer Web GUI vorgenommen. Bei FIT muss man für die Anbindung der zu testenden Objekte sogenannte Fixtures implementieren. Für den Test von Web GUIs bin ich dabei auf die Erweiterung HtmlFixture gestoßen. Leider ist auf dieser (offiziellen) Seite nur eine alte Version aus 2005 verlinkt, der Link zu den passenden Sourcen funktioniert erst gar nicht. Die verfügbare Version wurde mit HtmlUnit Version 1.5 getestet.

Leider hatte ich recht bald Probleme mit der HtmlUnit Version, weswegen ich ein Upgrade auf die aktuelle Version 1.14 versuchte. Das wiederum führte zu NoSuchMethodError bei der Fixture Set Value, ist also inkompatibel.

Da der Sourcelink auf der HtmlFixture Seite bei Fitnesse.org nicht funktionierte habe ich einfach mal bei Sourceforge gesucht. Dabei fand ich raus, dass das Projekt HtmlFixture sich dort befindet. Leider ist keine Aktivität mehr vorhanden. Dagegen gibt es eine Reihe Bug Reports, Feature Requests und sogar wenige Patches. Doch wenn sich offenbar keiner drum kümmert ist das Projekt halt tot.

Zum Glück bin ich über HtmlFixture Improved bei Sourceforge gestolpert, das offenbar eine Weiterentwicklung ist. Und die letzte Version 2.1.1 ist tatsächlich mit HtmlUnit 1.14 kompatibel.

Über die konkrete Installation von Fitnesse mit HtmlFixture möchte ich dann später mal berichten.

 
 
 
 

openArchitectureWare Erweiterung fuer XSD Schema


Moritz Eysholdt, studentischer Mitarbeiter bei itemis, hat seine Erweiterung für XSD Metamodelle veröffentlicht. Die Plugins inklusive Tutorial und Demos sind als Anhang an dem Feature Request#159700 zu finden.

Auf dieses Feature habe ich schon lange gewartet. Auch wenn es grundsätzlich möglich ist, XML basierte Modelle einzulesen (mit dem XMLInstantiator oder XMIInstantiator aus oAW Classic oder dem XMLReader Utility), so war es insgesamt noch etwas umständlich und auch nicht besonders gut dokumentiert. Häufig hat man zu den XML Dokumenten das zugehörige XSD Schema aber parat bzw. kann es mit Tools leicht herleiten. Was man sich eigentlich dann in openArchitectureWare wünscht, ist dieses Schema einfach im Classpath zu haben und dann mit Xpand bzw. Xtend Templates gegen das Schema Metamodell zu definieren, ohne irgendwelche Zwischenschritte.

Dieses Problem wird nun durch die Erweiterung endlich gelöst. Man installiert einfach das neue Feature und schon kann man gegen XSD Templates programmieren. Eine zugehörige Parser Workflow Komponente ist natürlich auch gleich dabei.

Beispiel

XSD Schema

Template

Workflow

<workflow>
	<!-- load the file -->
	<component class="org.openarchitectureware.xsd.XMLReader">
		<modelSlot value="model" />
		<uri value="model/mysetup.xml" />
		<metaModel id="mm"
			class="org.openarchitectureware.xsd.XSDMetaModel">
		</metaModel>
	</component>

	<!-- clean up the target directory -->
	<component
		class="org.openarchitectureware.workflow.common.DirectoryCleaner">
		<directories value="src-gen/mypackage" />
	</component>

	<!-- generate some code -->
	<component class="org.openarchitectureware.xpand2.Generator">
		<metaModel idRef="mm" />
		<expand value="templates::wizard::Root FOR model" />
		<outlet path="src-gen" />
		<beautifier
			class="org.openarchitectureware.xpand2.output.JavaBeautifier" />
	</component>

</workflow>

Wie in dem Xpand Template Screenshot zu sehen ist funktioniert die Code Completion wunderbar und integriert sich nahtlos in openArchitectureWare. Jetzt muss der Sourcecode noch etwas Feinschliff bekommen und dann werde ich ihn in die Codebasis des 4.2er Branches aufnehmen.

 
 
 
 

Tipps zur Suchmaschinenoptimierung


Die Optimierung der eigenen Website für Suchmaschinen ist ein kritischer Erfolgsfaktor. Doch welche Faktoren spielen wirklich eine Rolle und welche Faktoren werden in welcher Reihenfolge berücksichtigt. Was soll man vermeiden, um bei Suchmaschinen nicht auf der schwarzen Liste zu landen?[Read More]
 
 
 
 
 

« March 2010
SunMonTueWedThuFriSat
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   
       
Today

Valid XHTML or CSS?

[This is a Roller site]
Theme by Rowell Sotto.
 
© Karsten Thoms