Some days of work and now the version 2.0 is coming up at the horizon.
* The classes are now divided between API classes and domain classes. The domain classes are the classes holding the values within the Gemstone database. The API classes are the ones you are allowed to use in the REST specification. This idea has been introduced to make the external viewable API construct more stable from the rest of the application development. Copying data methods from/to domain/API classes are generated.
* REST APIs can now be modelled in the modelling tool. They can be arranged in APIs and in groups – allowing to create Swagger specification.
More work has to be done to make the GUI better, add some additional helper commands and to create source code which is really a create-and-run source code.
More work done towards a general REST generator (model and GUI change):
-> Projects may now have a class prefix attribute. This string is added to all created classes
-> Classes may now have “roles”. The code generators may use this “roles” during code generation.
-> Classes/Attributes have now “shadow” objects.
-> Menu entry added to jump directly to the error definition page
-> Menu entry added to create all classes within the model needed to have initial REST support.
Critical Error fixed: when changing the cardinality of an already existing association this change has not been told to the corresponding attribute. This was a structural error in the model. The attribute itselfs does not need to have a cardinality attribute at all. All code places changed where this cardinality has been queried.
Topaz CG has been changed:
-> it is much better to create a bash script including the source code and put all the connection code to connect to the stone process in there. The only thing you now need within PUM is the defSource file which normally is available for each stone. 2Mb source code is now imported/commited within 40 seconds (without instance migration) – that’s ok
Topaz Codegenerator changed and enhanced:
-> optional force Gemstone to forget the class history before filing in
-> optional force Gemstone to enable AutoMigration
-> Topaz script now contains login to a named stone, a user login and a user password
The usage of ordered classes in associations has been stopped. The default behaviour is now the use of unordered classes.
-> the default class for dictionary like associations is now RcKeyValueDictionary
-> the default class for unordered collection associations is now IdentityBag
-> the default class for unordered collection associations (reduced conflicts) is now RcIdentityBag
The Topaz CG now creates a initialize method for the US error messages, so that with each code update the persistent base is updated with new or changed method texts.
The Topaz CG now creates helper method for each defined error message – e.g. to signal an error and abort the current REST access and return a suitable error message to the sender.
For each class the user may now define if he wants to have csv, json and/or swagger support. The default value is always true.
The Gemstone/Topaz Generator has been updated to consider these flags.
The Gemstone/Topaz Generator now knows how to create a package correctly and generates always four packages: