Posts for the month of November 2008

Error in the maven repository version of MetaModel 1.1.1

We have identified a problem with the MetaModel 1.1.1 artifacts in the maven repository, so we will be releasing MetaModel 1.1.2 very shortly. The problem was related to the upload process and caused the jar's in the repository to not contain any .class files! The downloadables from our website did not suffer from this problem, so if you're using those, you're OK.

The new maven artifacts can be downloaded using this dependency tag:

<dependency>
 <groupId>dk.eobjects.metamodel</groupId>
 <artifactId>MetaModel-full</artifactId>
 <version>1.1.2</version>
</dependency>

A single feature have been added in the 1.1.2 release - CSV and XML content is now accessible not only through files but all kinds of input sources, including internet URLs.

Update: After some repository-synchronization waiting time the 1.1.2 release have finally been submitted to the public Maven repositories!

Minor fix release of MetaModel

We've just released MetaModel 1.1.1, the successor to the major 1.1 release!

This release is a minor fix release and you should be able to make an easy drop-in replacement of the 1.1 release. Here are the three fixes/improvements that we have been working on for the update:

  • Minor bug fixed: The equals() method of SelectClause had a minor bug related to comparing the distinct property.
  • Improvement: The Column and Table classes have had a getQualifiedLabel() method added. The qualified label is a dot-separated qualified name such as "MY_SCHEMA.MY_TABLE.MY_COLUMN". The qualified label can be used as a unique identifier for the column but is not necessarily directly transferable to SQL syntax.
  • Improvement: Getters and setters have been added to the SelectItem class

MetaModel 1.1 released!

As I write this newsitem I'm uploading the new version of MetaModel to the maven repositories! So let me take the time to tell you what's new in this release.

First of all I'd like to say that this is really a release with lots of fundamental changes and we have sacrificed backwards-compatibility at some places, so be sure to check that everything is working exactly as before. That said - those things that we have changed will also cause you compilation problems, so if you do a drop-in replacement and your build fails, then it's because the features have changed. We think this is the easiest way for everybody to deal with changes - it's a lot more obvious that you need to do something if it's really keeping your application from working! The good thing is that the new MetaModel provides a lot of great improvements and new features!

Here's a sum-up of the changes made to MetaModel from version 1.0 to 1.1:

  • We've done a major restructuring of the project as to make it more modular and easier to figure out.
  • This also means that the way you create DataContext objects have changed. In 1.0 you used the constructor of DataContext. This approach have been replaced by a factory class, which does all the instantiation and initialization stuff for you: DataContextFactory.
  • The MetaModel project is now LGPL licensed instead of using the Apache License version 2.0. For more info see MetaModelLicense.
  • The built-in query-engine, "Query postprocessor", which is used to serve CSV, Excel and XML content, have gone through numerous improvements to performance and functinality.
  • Column types can now be detected, narrowed and transformed using the Query postprocessor engine. This means that you can use the engine to detect and retrieve Integer, Double, Date, Time and Boolean types as well as the old String-based values, even from text-only datastores such as CSV files.
  • The JDBC datastores now have a query rewriter component which allows for optimization of queries using native SQL-syntax.
  • Query postprocessor now also generates information schemas used to investigate metadata about CSV, Excel and XML files.
  • Database compliancy have grown constantly during development and will keep doing so forward on. You can check the supported databases here: MetaModelCompliancy

All in all I think this release marks a high degree of maturity for the MetaModel project and we're very proud to present it to you!