Skip to content

Posts from the ‘MDA’ Category

10
Oct

Blogging about MDA…

... doesn't seem to be very popular. Just by coincidence, I dropped by the Technorati page for MDA (http://technorati.com/tag/mda), and discovered that most of the posts there originate from this very blog of mine. Funny. Come on, MDA adepts, there is more to blog about MDA! Don't let me be the only one talking about it!

20
Sep

Model Driven Architecture and Spring – friend or foe?

Issue 10.2005 of the german Java Magazin contains an article by Markus Völter, Eberhard Wolff and me about how the Spring framework and model driven concepts fit together. You can read the article online.

19
Sep

Android – The Eclipse plug-in for AndroMDA

Some time ago, I started work on an Eclipse plug-in for AndroMDA. Today, we created a JIRA project for Android, so you can go there and request features.

3
Jun

Integrating Maven in Eclipse

I am currently writing an Eclipse wizard that helps with creating a new AndroMDA project. AndroMDA already has two wizards that help with creating a new project - they are both commandline based: one for ANT, the other one for Maven (AndroMDApp Maven Plug-in).

One of the biggest problems with integrating Maven is that there doesn't seem to be something like a main entry class that provides some method one can call and hand in some parameters to get things going. Instead, the only way to start maven is to start a new VM and run the main class. Which turns out to be quite annyoing. Here is an extract of the code that is needed to do the trick:


// VM runner
VMRunnerConfiguration vmConfig = new VMRunnerConfiguration(
"com.werken.forehead.Forehead", foreheadClasspath);

vmConfig.setVMArguments(options);
vmConfig.setProgramArguments(goals);
vmConfig.setWorkingDirectory(projectParentDir.getAbsolutePath());
vmConfig.setEnvironment(environment);

String launchMode = ILaunchManager.RUN_MODE;
IVMRunner vmRunner = getJRE().getVMRunner(launchMode);

if (vmRunner != null)
{
// launch manager
ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
ILaunchConfigurationType type = manager
.getLaunchConfigurationType(IJavaLaunchConfigurationConstants
.ID_JAVA_APPLICATION);

ILaunchConfigurationWorkingCopy launchWorkingCopy = type.newInstance(null,
"Create AndroMDA project.");
launchWorkingCopy.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true);

monitor.worked(2);
monitor.subTask("Starting maven.");

ILaunch newLaunch = new Launch(launchWorkingCopy, ILaunchManager.RUN_MODE, null);
DebugPlugin.getDefault().getLaunchManager().addLaunch(newLaunch);
vmRunner.run(vmConfig, newLaunch, monitor);
monitor.worked(8);
}

Right at the start you can see something called "forehead". This some funky launcher the Maven guys use to set up the class path and start the main class. I wonder why they are making things so complicated. One drawback of running a tool like this is that you cannot get feedback about how far processing has proceeded. I would have liked to provide a real progress monitor for the wizard, but unfortunately this is not possible. Maybe I'll take a look at Maven 2.

2
May

MDA Transformations in practice

Together with Matthias Bohlen, I'll be giving a talk on MDA transformation at the JAX conference in May 2005.

Matthias and I will explain what transformations are and how to use the in modern MDA frameworks. Of course, since both of us are members of the AndroMDA team, we will show the use of MDA model to code transformations in AndroMDA and explain why the AndroMDA team chose not to use model to model transformations. A german abstract of the talk can be found here.

20
Apr

Is MDA a german phenomenon?

It appears to me that Model Driven Architecture is a german phenomenon:

Today, I was looking for some links concerning MDA and found a Wikipedia article that is rather short. But then I realized the "other languages" box at the lower left screen and had a look at the german translation of the article, which is much more detailed.

Another interesting observation is that most MDA tools originate from Europe:

  • ArcStyler
  • OptimalJ
  • AndroMDA
  • InnoQ
  • openArchitectureWare
  • BITPlan

So what do you think? Is MDA a german / european phenomenon? If so, why?

14
Apr

Serial Version UIDs

In my current project, we're struggling with serial version UIDs. Here are some links that shed a little light on the whole topic.
Portland Pattern Repository's Wiki states that all serializable classes should have a serial version UID assigned by the developer. An interesting observation ist that different compilers produce differnt UIDs for the same class.

SerialVer is a Sourceforge hosted project that provides ANT tasks for generating serial version UIDs.

The AndroMDA Hibernate Cartridge is currently lacking support for serial version UIDs, but I have filed an issue and hope it will be fixed soon.

23
Mar

I joined the AndroMDA team

Have you ever read stories about machines building other machines and computer programs writing other computer programs? Science-fiction, you say? Reality today, I say!

Take a look at AndroMDA. It is a tool that lets you build software from a model (designed in UML) and reduce the amount of hand-written code by great lengths.

I have been using AndroMDA since mid-2003 in several projects (a large one is currently running) and have started to submit patches for the AndroMDA Spring Cartridge. After having submitted patches for SPRING-34 (Spring remoting), SPRING-44 (support for rich clients), SPRING-38 (hibernate criteria search support, together with Stefan Reichert) and SPRING-47 (criteria search support for null parameters), the team invited me to join them and promoted me to be an AndroMDA commiter.

My next tasks will be to enhance the criteria search facility, enable finders to return java.util.Maps instead of java.util.Collections (SPRING-48) and adding a feature for limiting the size of the result set of a finder (SPRING-50).