New transaction support and handwritten code customizations
Manuel Lemos, 2005-11-02 03:00:00 GMT
|A new release of Metastorage is available implementing several
features meant to address better the needs of the Metastorage users. The
most important are the support for managing transactions and the
possibility to let developers write custom functions in PHP code for the
persistent object classes.
- Handwritten code customizations
Metastorage can generate code for persistent object classes that
implements many types of functionality needed by the applications.
However, sometimes the developers need to implement special types of class
functions that were not anticipated or are not yet implemented by
This release adds support to custom
class functions. The code of these functions is arbitrary. The
developer can write code in target language (PHP) for custom functions.
Metastorage integrates the handwritten code directly in the generated
The custom code is defined as part of the component class definitions in
CPML. This way the developers can implement arbitrary customizations
without loosing them every time the classes are regenerated by
- Transaction support
support is another important feature introduced in this Metastorage
release. Now all object accesses and updates can be involved within a
This way the generated classes can be used safely in multi-user
application environments, like busy Web sites, without the risk of causing
data corruption due to concurrent users accessing and updating the same
- External components encapsulation
An application that is composed of multiple components need to manage each
component classes separately to preserve data isolation and guarantee
Metastorage provides data isolation between the classes of distinct
components, by preventing that the classes of one component directly access
the classes of a different component.
If one object keeps a reference to an object of a different component, it
is necessary to retrieve the object identifier value of the referenced
object and pass it to the respective factory class to retrieve the
external component object.
This release enhances the setreference
functions to allow retrieving the referenced object identifiers, even when
such objects belong to external components.
- Several bug fixes
Several bugs were fixed to correct the generation of the of the code of
classes that handle uncommon situations. The situations related to the
bugs that were fixed are documented in the Metastorage
project progress feed.