Using fit4oaw for complex Xtend functions

This is my first try to use posterous. I’m excited what this service will provide me. To have something worthful to write about I decided to write about my current work I’m on today.
I have a customer who has defined a data transformation language with Xtext. Part of this language are declarations and usages of variables. No wonder. Of course variables can be used just within their scope – and here it becomes interesting. Xtext does not provide this out-of-the-box. The functions that we need to detect scoping are rather complex to develop. Basically we need just one function which detects for a given variable reference if the referenced variable is within the scope.
I use fit4oaw to go for a test-first approach. This helps me develop this function test-driven.
As you can see from this screenshot I evaluate expressions and compare their results. In the loaded model there are several variable references, and the function inScope() detects whether the referred variable is in scope. Now I have managed to get them all green, but work is not completely done. I now have to construct more complex situations and I know of at least one situation that would fail now. So – change the test model, add the test and it should fail again. Then develop further on the functions to handle this situation and the test should execute successful.
Writing complex Xtend functions was never so easy!

Posted via email from Karsten’s Blog

fit4oaw 1.0.0 released

Yesterday night I finished the work on fit4oaw release 1.0.0. This has been hard work in the last weeks, especially since I had to work in spare time for this project. My daytime job is already challenging and exhausting, and after 8-10 hours of work the additional work on fit4oaw began, often until deep in the night. For work on other projects, i.e. openArchitectureWare, M2T Xpand, EMFT MWE, Fornax etc. there was no time naturally.

fit4oaw screenshot

This is just the first release, there is many more work to do to make this project successful. Not only additional features, the current feature set is quite sufficient to be useful, also other tasks like documentation, PR, usage scenarios, examples have to be solved. I plan to document the main tasks into the project wiki. If you are willing to contribute then check this task list.

I am quite confident that this project will be a success and of great use in my projects in the future. I already managed to find first users within itemis who used the beta versions and gave valuable feedback. Therefore I thank Alexander Nittka, Marc Eilens, Michael Bädorf, Ingo Feltes and Heiko Behrens. Tomorrow I will have an interview with Hergen Oltmann, and then I will announce this release in our internal itemis podcast.

For my current project this project comes a bit late. It would have been of great use in the past weeks. We developed lots of extension functions, which are only tested by executing within our generation process. They weren’t documented enough and I would document and test them now with fit4oaw. Who knows, maybe my customer decides to extend my work for them and then I could have a chance to place this fine product in the project. I really think it would be of great use in mid-term. They would have to document all developed stuff properly anyway.

Download fit4oaw now and give it a try! Just unpack, start and run the Fit4oawDemo test suite. It is really easy!

Working on fit4oaw

In the last days I made huge progress in the development of my new open source project, fit4oaw. Most of it in my spare time when I was in the hotel in Frankfurt, but today and yesterday I spend some time from my regular working time on it. At itemis we have an open minded management, which let us invest some of our time for such activities. We call it “4+1”, means in average we have 1 day per week on our own, which is totally filled with my various open source developments.

This week I released the first beta version, which already is bundled as an out-of-the-box solution with all dependencies within. Just download, unpack, start and run the Fit4oawDemo tests. As I heard from colleagues it also worked for them and I get already positive feedback. This is really nice, and confirms me that I had the right idea.

After releasing the beta I realized that I have to change some fixtures again to make things even easier. The CallXtendFunction fixture will disappear and all will be done in the Expression fixture. To give you an impression how test cases for oAW Xtend functions and expressions look like:

fit4oaw Test Execution

Next week I meet with Hergen Oltmann to record our itemis internal podcast. Until then I want to release version 1.0.0. I’m quite confident that I will manage to release the first version and that it already matches many needs. And I spent time to set up the build process with Maven. Building a release package is just executing a Maven build.

However, I already have ideas for extensions and further colleagues addressed interesting ideas for extending the project after 1.0.0 already. I will talk with Andreas Mülder, he worked successfully with the Groovy EMF Builder, with which test models can easily be created. Until now I assume to load fixed models with fit4oaw. I hope we can integrate the EMF Builder into fixtures easily to create EMF and UML2 models on-the-fly for tests.

I’d like to thank Alexander Nittka, Marc Eilens and Michael Kloss for evaluating the project in this early stage. Their feedback was very valuable to see real requirements besides my own. For now I could only test the product for small examples, since I spent much time on the build process and those examples. I’m sure that in a greater context I will face some gaps I need to fill.

Further news is that I told Darius Jockel and Andre Neumann to use Fit4oaw to test development of the Fornax JavaBasic and Hibernate cartridges. And Carsten Oltmann will create a nice logo for this project soon!