After months of development, we are proud to announce the release of first alpha version of MediaMosa 2.x. This new release has been build on Drupal 7 and introduces many improvements for open source developers. We have reorganized the source code and rewritten a large part of the core code to support Drupal 7 new database layer.
MediaMosa v1 was developed on the content management system Drupal version 6. With the coming release of Drupal 7 and its many improvements, we wanted to port MediaMosa to the new Drupal 7. However Drupal 7 is still under development, although close to a first stable version. The new version of MediaMosa does not only run on Drupal 7, but also has many improvements of its own.
The main focus of the MediaMosa v2 release is to provide a better and more supported community version for open source development. Cleaning up code, making code more accessible and easier to understand is one of our main goals. Implementing a better support for Drupal and future support of its hooks functionality in our code.
Most significant code change in MediaMosa is the usage of the Drupal 7 database layer, which has been redesigned to an object oriented layer. The current code base of MediaMosa 1.x was no longer compatible with the new database layer and forced us to decide to rewrite more than 1350 database queries.
Our MediaMosa database design has been cleaned up, tables have been renamed and merged with the Drupal database. In our v1.x version, all data was divided into 2 or more databases, making it harder to maintain data and to develop on our database design. This is now in the past and we now have one single database design. We also introduced a new database code layer between Drupal and our code. Thus enabling better support in the future for other database layers, not being depended exclusively on Drupal.
The program code has been completely overhauled. Code has been cleaned up, moved, renamed, and sometimes re-factored. Using new technologies like (static) classes, object oriented REST layer, and complete support for auto-loading of classes, our code is made faster to run on non-APC (or other caching methods) enabled servers. Although its still wise to use APC (Alternative PHP Cache) or other PHP cache methods.
Using the new database layer of Drupal 7, also caused a side-effect which makes the new release less stable. In the v1.x of MediaMosa, any database query that failed was ignored and just logged. In Drupal 7 however, query failures are always fatal. Making old undetected problems in MediaMosa now a real problem. Although in the end, we will end up with a more stable version than ever.
The REST interface has been re-factored into a new class orientated object. Using a exception try-catch layer to handle any errors during the REST call. Also the logical code has been moved from the REST code and moved into the main core module. In our new design, a REST call should only handle the in- and output of the REST call and only call functions within the core code for its result. This enables us to support more in- and output layers in the future like SOAP or even XHTML.
Our REST call documentation can now be generated using the new REST interface, using a Drupal hook. Which is a big improvement and allows us to have an up to date documentation on our website. Any new REST call function can be added using a Drupal hook and intermediately enable itself for usage. MediaMosa developers can now develop modules that work on the core code and have own REST calls without changing one line to the existing code base.
The basic tables for client applications, trans-code profiles and server setup have been converted to Drupal nodes. Enabling development directly on these node objects using Drupal node functions.
All our existing simple-test (unit tests) must support the new Drupal simple-test 2.0 sand-boxed version. This meant that most of the tests had to be re-written to support sand-boxed environment.
Debugging our code base of 250.000 lines of code is an enormous task. Our current efforts are converting all 70+ unit tests we have and adding some new ones to make our new code stable.
Our current development version starts at version 2.1. The 2.0 version was a internal read only test version, that we didn't intend to release for public and was for testing and debugging purposes only. We consider 2.1 version to be a unstable ALPHA, and should not be used for production purposes. Remember that this release is still unfinished and will contain bugs.
You can find the 2.1 release as development snapshot only under mediamosa_snapshot_2-x.
We hope that you enjoy the new MediaMosa 2.1 Alpha 1 release.
MediaMosa development Team.