dgMaster logo:dice dgMaster: data generator, simple.

What's new...


  • A new release is available now (2.0.1); this offers database support (use at your own risk!). dgMaster can correctly generate data for 1:n tables, but n:m is slightly problematic - I need to write a section on this, but here is a short example:
    Problematic case: An Employee can belong to any number of Groups, a Group can have any number of Employees. So essentially, a table named EmployeeGroup with two foreign keys (EmployeeID, GroupID) is needed - dgMaster will not correctly generate data for the three tables (Employee,Group, EmployeeGroup). You can link these three tables and define an 1:n relationship between Employee and EmployeeGroup, as well as define an 1:n relationship for Group and EmployeeGroup, but it will not work as you might expect! (you may as well try this and see how dgMaster treats this)....
    Also notice that the second option in 'Number of Records' when right-clicking a relationship is not actually working!
  • In short db support is not up to the level I would like, there are many GUI enhanchments that I need to make, plus some engine enhanchments


  • I hope to have a new release soon, I have been working on the database integration for quite some time. I am working towards the ability to define relations among tables and generate data for schemas rather than individual tables. I am in the phase of putting some fine changes and testing these...
    April Update, Apologies for not having a release yet; I did not have time to work on the project... Most updates are done, and I do hope to have a release really soon (before June 2009).

29/3/2008 - new version is the beta one

  • I added support for scrollbars in most of the panels; this makes very big panels, (like the text definition panel), scrollable.
  • A new release is out, but still no full database support, although I believe I am getting closer to implementing a simple version of this :) The version is a beta one, you should be able to connect to a database, retrieve the tables, assign generators to table's fields and well.... that's pretty much all of it - you cannot do much after it. Next step would actually be to do something meaningful with this - I am working on it.... (Still, no referential integrity has been implemented...).
  • For some time now I meant to provide a regular expressions generator. While looking into it, I found another GPL licenced project, benerator, (another data generator project). Benerator seems to be a very nice piece of software, nevertheless, dgMaster is focused on providing certain features not offered by most of the existing data generators (including benerator:). The fact that dgMaster can use other pieces of software, merely prooves that the concept is correct; simply plug in your own generator and all works nicely :)
  • Another addition was the inclusion of a generic panel, so developers would not have to write their own panel in order to fine-tune their generator. The generic panel allows the developer to store the pairs of names-values using a table, rather than having to code an individual panel.


  • A long time has passed and I have not updated this web site, so apologies for this...
  • The reason was that I have been in a transitional period for a few months now; fortunately this ended a couple of weeks ago! Basically, I got a new job, totally unrelated to my previous university job...So, this has been quite a challenge for me and meant lots of changes  as soon as my summer holidays finished. I had to relocate to the London area, which meant finding a place to live, carrying my things, making arrangements, changing bank account, getting used to the new roundabouts and so much more! On top of these, my PC had a problem with its USB ports which kept me busy for a while.
  • On with some good news now: The next version of dgMaster is almost ready. This will be a Beta version which has limited support for databases, (yeeees!). Unfortunately, it does not handle foreign keys and therefore does not respect referential integrity (Boooooo...). This is an important feature and will be added soon though.
  • I will be updating the web site more frequently now that I settled down with an appropriate job and a new place, so stay tuned! If you have any comments or suggestions please drop me an email (mmichalak@gmail.com).


  • The first bug was filed, (yes, what a proud moment...). Basically, the software has a couple of bugs that have been brought to my attention, but they are not very important. However, this one was: as it turned out the path file separator was not appropriate for Mac's file system (and probably *nix flavours too) and this was fixed. Many thanks to the user who pointed out this important detail.
  • Other bugs include: destroy() method of any randomiser is not called, on some monitors (laptop ones especially), some GUI rearrangement in the FileOutputPanel needs to be made so as to fit everything nicely. If you find any other bugs, or have any requests or features use sourceforge to file those.
  • There was some progress with the database bit, but it's not done yet. I expect that it will be done by the end of Summer, early Autumn.
  • I will soon not be having access to my working environment, as I will be on holidays.....Have a nice  Summer:)


  • Today I completed the work on the manual, which is now available as a pdf file. New sections will be added in the manual when new functionality is added to the software. The HTML version is not so easy to read, (I converted the open office document to HTML, but the figures are small), so I suggest you download the PDF version instead. If these links do not work, then you can download the pdf file from the original location.
  • That small bug with the dialogs not closing appropriately if the user cancels the data generation is still there and will be fixed in the next release.


I am working on the manual. I have also done quite a lot of work on the database area and it looks quite cool. I am happy with the progress as well as by the fact that a number of people have downloaded dgMaster.I wish I had more time to finish some features sooner, but life is hard when you need to make a living :)

  • Making some final corrections in the manual.
  • I noticed a bug when generating the text data, the dialog does not really seem to be closing down after the data is generated, I will fix this.
  • I have gathered some more data to be released with a fututre version. (US post codes--together with states and towns, UK post codes--also with towns and company names).
  • As a proof that I have been working on the database section, I have posted some (hopefully convincing) screen shots of work under progress, stay tuned...


Current release: 1.02.

  • Fixed a GUI problem when resizing the generator panels and using the splitter component: The splitter could not be dragged along properly. The horizontal resizing problem is fixed, but I noticed a couple  of generator panels not resizing properly when the user resizes them vertically. Additionally, some labels on some buttons seem not to appear in full...
  • A dialog appears when the user tries to perform a function which is not supported yet. Apparently, there is a spelling mistake in that message dialog (everyone clap your hands now)...

I am almost done writing the user's guide. When it is done, I will release it as another package in sourceforge.
I am continuing work on the database generators, it's going well and I may have a first working version before the end of the summer.


Currently working on the user guide, explaining how to use the generators and what all the different options in the File output panel are.
Fixing a few bugs in the code, panels need to be able to grow and shrink correctly, some message boxes should be put when the user selects a function which has not been implemented yet.
I realised that short and  byte generators are missing, will fix that too.

(First release! Sort of minimal, I would rather list the features that does not have, rather than the ones it has!)

Built in data generators for the following "primitive" data types:

  • Boolean
  • Numeric (Integer, Double, Float, Long)
  • Random text (non-pronounceable for now)
  • English text (from dictionary)
  • Date
  • SQLDate
  • SQLTime
  • Timestamp

Built in data generators for the following "high level" data types:

  • English first name
  • English last name
  • English full name
  • User-defined list (dictionary)
  • E-mail

User-defined parameters where applicable, for example: custom distributions, precision of digits, date formatting, text punctuation, and more...

Easily extensible with new data generators

Support for text output with various options (fixed width, alignment, CSV, user-defined separated fields, user-defined enclosing characters)

To-do list, priorities are assigned from 0 (low) to 3 (high):

  • Database support [2]. Full graphical interface to help user assign generators to fields respecting the schema's referential integrity.
  • Composite data generators [2]. This will eliminate the need for synchronizing among different data generators as described here [PENDING].
  • More generators [1]. Credit card number, social security number, expression builder, post codes (English), Bayesian text generator.
  • On-line help system [0].