Welcome to jMDA

To generate software automatically has been a strong ambition since the early days of software development.

jMDA is a new approach in this area. It streamlines proven, widely known and accepted open source technologies into a most comprehensible and easy to use set of Java libraries that are extremely powerful and flexible at the same time. The main purpose of jMDA is

  • to leverage a comprehensible and easy to use modelling environment,

  • to provide convenient and complete access to modelling information and

  • to make available easy to use software generator facilities.

The introduction will briefly explain the main drivers behind this project, the jMDA book provides more detailed information about the most important concepts and the open source software is available here.

Sunday 30 December 2012

sample: jboss 7 datasource definition with derby network client

I've been messing around with JBoss 7 and Apache Derby Network Client lately. I did not find a datasource configuration example for exactly this combination so I post this to spare others annoying investigations on this.

To sum it up: The configuration for my simple environment is very straight forward, especially there is no need to define a JBoss module or to specify particular Derby JDBC driver classes. All you have to do is place derbyclient.jar into JBoss deployments directory and insert a datasource definition into the respective section of the JBoss standalone.xml as follows:

<datasources>
  ...
  <datasource jndi-name="java:/DataSourceDerbyNetwork"

              pool-name="DataSourceDerbyNetwork">
    <connection-url>jdbc:derby://localhost:1527/c:/data/db/derby/xxx;create=true</connection-url>
    <driver>derbyclient.jar</driver>
    <pool>
      <min-pool-size>5</min-pool-size>
      <max-pool-size>20</max-pool-size>
    </pool>
    <security>
      <user-name>yyy</user-name>
      <password>zzz</password>
    </security>
    <timeout>
      <idle-timeout-minutes>5</idle-timeout-minutes>
    </timeout>
    <statement>
      <track-statements>true</track-statements>
    </statement>
  </datasource>

  ...
</datasources>


Of course you have to adjust the data printed in bold according to your individual needs. Please refer to the Derby documentation for further details about the connection-url for example.

By the way: I removed the default datasource ExampleDS from standalone.xml and did not observe this causing any problems. Seems that ExampleDS, as its name says, is used for examples only.

Sunday 7 October 2012

Avoid unnecessary qualified type references in generated source code

The new version of jmda.gen provides convenient and smart support for Java code generators to produce exactly those import statements that were needed. It also helps to avoid unnecessary qualified type names in generated code as well as name collisions in generated import statements.

Monday 17 September 2012

Combine jmda.core with jmda.gen and create JUnit test suites for existing JUnit tests

This new example demonstrates how to combine the jmda.core and jmda.gen libraries. It shows how to find all JUnit test methods in a code base and and how to create JUnit test suites that automatically run all JUnit tests package by package.

Saturday 8 September 2012

Create a simple Java source code generator with four lines of code using jmda.gen

I wrote a small quickstart example of how to get started with the jmda.gen framework. Hope you find this interesting.

Complete redesign of jmda.gen generator framework

During the recent months I redesigned the jmda.gen generator framework completely. Today I start publishing previews of the upcoming new version 0.9 because I think that the library becomes more and more stable and mature. So if you are interested in building your own generators in a really comfortable and flexible manner then try and check out what jmda.gen can offer. You can find a jmda.gen quickstart example here.

Friday 22 June 2012

Create / update jaxb.index files

Creating or Updating jaxb.index files with jMDA JAXB sample tools is as easy as this:


    Map<File, Set<String>> indexData =
        JAXBIndexDataBuilder.build(rootDirectory);
    
    for (File packageDirectory : indexData.keySet())
    {
      FileUtils.writeLines(
          new File(packageDirectory, "jaxb.index"),
          indexData.get(packageDirectory));
    }
The updated the .zip file contains the JAXBIndexFileWriter class which does pretty much the same as what is shown above.

Saturday 16 June 2012

New jMDA based tools help to keep JAXB index files and package lists in sync

A new "getting started" example has just been published. It describes how jMDA makes it extremely easy to develope tools that help to accomplish some tedious maintainance tasks when working with JAXB. The tools use information provided by a simple jMDA processor.

Update of jmda.core available

A new version of jmda.core (jmda.core-0.8.1) is available. For a summary of new features and improvements see release-notes.txt inside the downloadable zip archive.

Sunday 3 June 2012

What has been going on with jMDA in the recent year?

When I discussed about jMDA with colleagues and friends in the past it became obvious that one thing is missing. Textual models such as Java source code files in jMDA are fine but graphical models often are sooo muuuch mooore expressive!

I could not disagree with that and because I'm a huge UML fan I started looking around for appropriate Java to UML reverse engineering tools. It soon turned out that it was not easy to find any. Existing products often are extreme heavy weights, clumsy to use, expensive and so on. So I started playing around with an own solution. With jMDA at hand I had everything necessary to find out anything about a given jMDA model so the only thing to do was to bring that model information into an appealing graphical representation. First results looked very promising (at least in my eyes).

But soon some really nasty problems occured. The biggest among them being myself and my lacking knowledge and experience in developing software with a huge amount of obviously non mainstream graphical requirements. I started with a Java Swing approach but got frustrated about a lot of features that seem to be missing.

Then I decided to try JavaFX 2.0. Again first results looked promising but missing basic features were a big disappointment.

After all I spent a lot of time in these investigations during the last year without satisfying results. However recently I became to know UML Explorer which does most of the things I was looking for very nicely in an eclipse environment. So I gave up or at least postponed my plans for an own solution. This will allow to concentrate on developing new and improving existing features for the actual jMDA products.

Saturday 2 June 2012

New blog started for jMDA

More than one and a half year after publishing jMDA as an open source project I start this blog today. The blog is meant to provide up to date information about hopefully interesting things related to jMDA. It will replace the old project home page which will be discontinued soon.
With this blog I hope to increase community interest and participation in jMDA and would be happy to receive comments and feedback. In the jMDA project I'd like to collaboratively improve and extend jMDA technology. I plan to discuss and publish new libraries that address particular application fields for jMDA.
Finally this blog wants to be a place for the community to share ideas and discuss jMDA related topics.
Some initial information about jMDA is already available here.